为什么此for循环会打印两次?

时间:2019-01-28 21:03:37

标签: python for-loop

我有这个程序:

print()
print ('------MENU------')
print ('1. Welcome to Python')
print ('2. Python is fun')
print ('3. This could be a challenge')
print ('4. Exit')
print()
choice = int(input('please enter a choice between 1 to 4: '))
for choice in (1,5):
      if choice ==1:
            print ('Welcome to python')
      elif choice == 2:
            print ('Python is fun')
      elif choice == 3:
            print ('This could be a challenge')
      else:
            break

它应该先打印MENU,然后要求输入一个整数。我的问题是为什么每次输入1到3之间的整数时它都会打印两次?

1 个答案:

答案 0 :(得分:5)

使用for choice in (1,5):,您将告诉程序:“对choice = 1执行一次以下操作,对choice = 5执行一次以下操作。这里,for是一个for- 循环,这并不意味着“针对……”。

您可能的意思是if choice in range(1, 5)range也很重要,否则您将只测试choice是否在元组(1, 5)中,即15中。或者,您也可以执行if 1 <= choice < 5

(注意:将for更改为if后,您可能会遇到break的问题,因为这是循环允许的。或者,您可以使用{{1 }}(如果该代码位于函数中,或者仅return即可退出程序,或者如果它始终是程序中的最后一条语句,则根本不执行任何操作)。