这个for 后面的length为什么要-1啊
我又来了{:10_266:} 因为 range(length - 1) 表示从 0 ~ length - 2 之间的数字。如果是 range(length) 就表示 0 ~ length - 1 的数字。如果写成 range(length),那当 each1 为 length - 1 时,后面判断 desStr 就会越界 楼上正解 zltzlt 发表于 2020-8-19 15:49因为 range(length - 1) 表示从 0 ~ length - 2 之间的数字。如果是 range(length) 就表示 0 ~ length - 1...
呃,我把length-1改为了 length ,子字符还是im 然后也没有报错 也是3次;然后我把im 换成了 d . (就是目标字符串的结尾),也是可以循环到,出现次数是1次,然后我有把length改成了length-1 ,发现两个结果居然是一样的。。。 rari 发表于 2020-8-19 17:03
呃,我把length-1改为了 length ,子字符还是im 然后也没有报错 也是3次;然后我把im 换成了 d . (就是 ...
不会所有数据都不会报错,比如:
请输入目标字符串:asdasdasdasd
请输入子字符串(两个字符):da
Traceback (most recent call last):
File "xxx", line 19, in <module>
findStr(desStr, subStr)
File "xxx", line 10, in findStr
if desStr == subStr:
IndexError: string index out of range zltzlt 发表于 2020-8-19 17:11
不会所有数据都不会报错,比如:
补充:因为目标字符串的最后一个字符和子字符串的第一个字符相同,所以进入了第二个 if,导致越界,报错
页:
[1]