我使用包含所有分数的列表playerScores
制作了一个评分系统
# Fake sample data
playerScores = [5, 2, 6, 9, 0]
我希望当列表中的任何分数等于或小于0时运行if语句
我试过了
if playerScores <= 0:
但我被告知列表不可调用
答案 0 :(得分:3)
您可以将any
与生成器表达式结合使用,以检查列表元素是否小于或等于0.
playerScores = [5, 2, 6, 9, 0]
if any(score <= 0 for score in playerScores):
# At least one score is <= 0
答案 1 :(得分:0)
您的playerScores
变量是一个列表。试图将它与0
(或任何数字)进行比较,效果不会很好。
>>> a = [1, 2]
>>> a <= 0
False
而是使用for
循环来检查列表中的每个项目
for item in playerScores:
if item <= 0:
## Do something
如果您只是想检查是否有<= 0
,那么只需将条件设置为False
,如果找到,则将其更改为True
。
flag = False
for item in playerScores:
if item <= 0:
flag = True
break
if flag:
## Do something
我不知道你为什么会收到list not callable
错误。使用与列表的比较(如上所示)将返回False
。为了得到你提到的错误,你需要这样的东西
>>> a(1)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a(1)
TypeError: 'list' object is not callable
在这里,您尝试将列表调用为函数function()
,而不是将其编入索引list[]
>>> a[1]
2