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:刚刚尝试了一个快速计时测试,该集确实更快。没有想到对于一个非常小的集合,因为必须计算散列。又学到了新东西。谢谢。我终于找到了它的真谛。谢谢你的解释。