【发布时间】:2018-06-10 23:11:34
【问题描述】:
def checker(a_list):
for item in a_list:
if str(item).isdigit():
return True
else:
return False
检查器的变量是包含变量的四个字符串的列表。 我打算将它用作“检查器”,以查看另一个函数的所有输入值是否仅包含数字。
问题:如果 a_list 中的第一项不是数字,则检查器应返回 False。但是,如果第一项是数字而列表中的其他任何一项都不是,则 checker 无论如何都会返回 True。这会导致下一个函数继续处理非数字变量并导致错误。
如何让我的函数在返回 True 之前检查整个列表? 或者,如果需要,我如何创建一个新功能来满足我的需求? 谢谢
【问题讨论】:
-
你想检查列表的所有成员为数字吗?
-
return语句退出整个函数(参见python-course.eu/python3_functions.php),因此for循环的第一次迭代将命中return并结束函数。我建议您进行迭代,如果循环内没有数字,则仅返回False,并在for循环之后返回最终return True。也可以看看alldocs.python.org/3/library/functions.html#all -
不要
return Truein循环。在循环中检查项目not .isdigit。循环完成后移动return True。 -
请发布一个输入 (
a_list) 的最小示例,该输入 (a_list) 应该 评估 到True和一个 评估 到False. ...minimal reproducible example
标签: python python-3.x for-loop