失之毫厘,差之千里。

无论是刷题亦或是科学运算中,循环体数组列表的搭配总是不可避免地平凡出现。如果想要写出漂亮,优雅的代码,对边界条件和特殊取值的理解应当精确。
下面是笔者在 Leetcode 刷题常常遇到的循环体和下标问题:

  • 循环内的操作是否使循环条件改变

for循环:

maxnum = 9
j = 0
for i in range(0, maxnum):
    maxnum = maxnum - 1
    j = j + 1
print(j) """ j = 10 """

while循环

num = 10
j = 0
i = 0
while i <= 10 and j <= 5:
    j = j + 1
    i = i + 1
print(j)""" j = 6 """
  • 循环和切片操作
    循环和切片起始值都能取到,结束值都不能取到,在对字符串操作时,应当注意边界操作
s = 'abcdef'
for i in range(0, len(s)):
    for j in range(i, i + j + 1):
        pass

我们在for 循环过程中,应确保起始值小于结束值,否则程序会在两者相等时跳出循环。