【发布时间】:2019-12-30 14:09:05
【问题描述】:
我的任务是创建一个函数,如果 word 中有数字 (0-9),则返回 True,如果 word 中没有数字,则返回 False:
def has_digits(string):
for r in range (0,10)
if r in string:
return 'True'
else: return 'False'
print(has_digits('Python3'))
通常我有这个错误信息:
TypeError: 'in <string>' requires string as left operand, not int
【问题讨论】:
-
既然你有
for r in range(0, 10):,那么循环内的r将是一个int。因此,当您执行if r in string:时,您将尝试评估例如0 in 'Python3'并且,正如错误告诉您的那样,这没有任何意义。此外,您的缩进已被破坏,他们可能希望您返回布尔值True和False而不是看起来像它的字符串。 -
这样更好:
return any(char.isdigit() for char in string)见:stackoverflow.com/questions/19859282/…
标签: python python-3.x string numbers int