Python 如何在给定代码中运行if循环
代码从Python 如何在给定代码中运行if循环,python,python-3.x,Python,Python 3.x,代码从count=0工作到count=9。然后它不会进入另一个elif代码。我已经在下面评论了哪个部分不起作用。我已经通过检查count的值尝试了很多次,但仍然找不到代码不起作用的原因 count =0 for line in sys.stdin: line = line.strip() print(count) if (count==0): a = int(line) #no of series count=1 elif(
count=0
工作到count=9。然后它不会进入另一个elif代码。我已经在下面评论了哪个部分不起作用。我已经通过检查count的值尝试了很多次,但仍然找不到代码不起作用的原因
count =0
for line in sys.stdin:
line = line.strip()
print(count)
if (count==0):
a = int(line) #no of series
count=1
elif(count==1): #2nd line 2 players 3 mtches
plyrs_mtchs=[]
plyrs_mtchs= line.split()
print(plyrs_mtchs)
count+=1 # #no of players , no of matches
elif(count==2 or count==6):
players.append(str(line))
print(players)
count+=1
elif(count==3,5 or count==7,9):
currenplyr = players[len(players)-1]
predict.append(line.split())
count+=1
elif(count==10 or count==11): #this code doesn't work
actual.append(line.split())
count+=1
elif(count==12): #this code doesnt work
actual.append(line.split())
count+=1
你的表情:
elif(count==3,5 or count==7,9):
不会做你认为它会做的事。您没有测试count
是否有4个可能值中的一个。Python将其视为构成元组的3个不同表达式:
count==3
5 or count==7
9
产出
(False, 5, 9)
如果计数
不等于3,则
(True, 5, 9)
如果是的话<代码>5或您的表达式:
elif(count==3,5 or count==7,9):
不会做你认为它会做的事。您没有测试count
是否有4个可能值中的一个。Python将其视为构成元组的3个不同表达式:
count==3
5 or count==7
9
产出
(False, 5, 9)
如果计数
不等于3,则
(True, 5, 9)
如果是的话
5或elif(count==3,5或count==7,9)
也不起作用。它工作得很好,没有问题相反,这正是你的问题。elif(count==3,5或count==7,9)
也不起作用。它工作得很好,没有问题相反,这正是你的问题。@Pieters:答案很好,很详细。只是想知道为什么你更喜欢{1,2}
中的一个集合,而不是一个更简单的常量对象,一个类似于(1,2)中计数的元组?政府是否有优势?谢谢。@VPfB是的,设置成员资格测试更快(O(1)恒定时间)。Python3编译器实际上存储了一个带有字节码的frozenset()
对象,因为它无论如何都不能进行变异。@Pieters:刚刚尝试了一个快速计时测试,该集确实更快。没有想到对于一个非常小的集合,因为必须计算散列。又学到了新东西。谢谢。我终于找到了它的真谛。谢谢你的解释。@Pieters:回答得很好,也很详细。只是想知道为什么你更喜欢{1,2}中的一个集合,而不是一个更简单的常量对象,一个类似于(1,2)中计数的元组?政府是否有优势?谢谢。@VPfB是的,设置成员资格测试更快(O(1)恒定时间)。Python3编译器实际上存储了一个带有字节码的frozenset()
对象,因为它无论如何都不能进行变异。@Pieters:刚刚尝试了一个快速计时测试,该集确实更快。没有想到对于一个非常小的集合,因为必须计算散列。又学到了新东西。谢谢。我终于找到了它的真谛。谢谢你的解释。