这是函数:
def is_sorted(L):
""" (str) -> Bool
Return True iff the L is sorted in nondecreasing order. Otherwise, return
False.
>>> is_sorted([1, 2, 3, 3])
True
>>> is_sorted([3, 2, 1, 3])
False
"""
if len(L) == 0:
return False
for i in range(len(L) - 1):
if L[i] > L[i + 1]:
return False
return True
然后,我在一个字符列表上执行了它,并返回True.但是,我希望收到“列表索引超出范围错误”.谁能解释为什么它会有这种行为?
解决方法:
范围(a,b,s)是[a,a s,a 2 * s …,x]其中x < b.
因此范围(0)-> range(0,0,1)生成一个空列表.这意味着将跳过for循环的内部,返回True
感谢Ali Shahrivarian的编辑
标签:for-loop,range,python
来源: https://codeday.me/bug/20191108/2010131.html