Python 3.x While loop.isdigit。为什么函数出现错误';123';但不是';abc123';?

Python 3.x While loop.isdigit。为什么函数出现错误';123';但不是';abc123';?,python-3.x,Python 3.x,为什么函数1执行,而函数2返回错误?(Python 3.4) 职能1: secret('abc123') 职能2: secret('123') 代码: 您没有发布收到的错误消息,但我猜可能是因为您没有检查i以确保它没有超过字符串的长度。第一个示例之所以有效,是因为第一个字符不是数字,因此在循环超出边界之前就中断了循环。将您的while更改为: while i<len(s) and s[i].isdigit(): 当我 while i<len(s) and s[i].isdigi

为什么函数1执行,而函数2返回错误?(Python 3.4)

职能1:

secret('abc123')
职能2:

secret('123')
代码:


您没有发布收到的错误消息,但我猜可能是因为您没有检查
i
以确保它没有超过字符串的长度。第一个示例之所以有效,是因为第一个字符不是数字,因此在循环超出边界之前就中断了循环。将您的
while
更改为:

while i<len(s) and s[i].isdigit():
当我
while i<len(s) and s[i].isdigit():