为什么这样功能1执行但功能2返回错误? (Python 3.4)
功能1:
secret('abc123')
功能2:
secret('123')
代码:
def secret(s):
i = 0
result = ''
while s[i].isdigit():
result = result + s[i]
i = i + 1
return result
答案 0 :(得分:0)
您没有发布您收到的错误消息,但我的猜测是因为您没有检查i
以确保它没有超过字符串的长度。第一个例子是有效的,因为第一个字符不是数字,因此在它可以超出边界之前打破你的循环。将您的while
更改为此:
while i<len(s) and s[i].isdigit():
这样可以确保i
不会跳过字符串长度的范围。