循环和下标越界
失之毫厘,差之千里。
无论是刷题亦或是科学运算中,循环体和数组,列表的搭配总是不可避免地平凡出现。如果想要写出漂亮,优雅的代码,对边界条件和特殊取值的理解应当精确。
下面是笔者在 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 循环过程中,应确保起始值小于结束值,否则程序会在两者相等时跳出循环。