Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个循环打印两次?_Python_For Loop - Fatal编程技术网

Python 为什么这个循环打印两次?

Python 为什么这个循环打印两次?,python,for-loop,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):

我有这个计划:

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
它应该先打印菜单,然后要求输入一个整数。我的问题是,为什么每次我输入一个介于1到3之间的整数时,它会打印两次?

在(1,5)中选择
你告诉你的程序:“为
choice=1
做一次下面的操作,为
choice=5
做一次下面的操作。这里,
for
是一个for循环,它并不意味着“在……的情况下”


你的意思可能是
如果选择范围(1,5)
范围
也很重要,否则你只需测试
选择
是否在元组
(1,5)
,即
1
5
。或者,如果1是指
如果选择范围(1,5),你也可以执行
为什么它会打印两次
。为什么什么东西会打印两次?@tobias_k我看到很多问题,有人在使用
的时候使用
,而
的意思是
如果
。我想这是我见过的
for
的第一例。你为什么要循环?你需要学习控制流的基础知识。pythonI中的变量声明必须假设我不喜欢在范围检查的上下文中看到
range()
。当建议初学者使用时更是如此。后一种建议是使用
,如果1@FynnBecker我同意,这就是为什么我添加了比较链接选项,但是
在范围内(…)
可能是OP在编写代码时想到的。另外,至少在Python 3中,当然对于
int
,在范围(…)
中测试
实际上是。@FynnBecker,你能解释为什么在Python 3中
如果在范围(1,6)中
更糟糕,如果1@jpp我知道几乎所有的东西都有可行的使用案例,但是我没有看到任何关于这个具体问题的案例。我解决了这个问题,因为OP显然是python的新手,并且推荐
range()对于初学者来说,由于某种流行的书籍而留下了一种酸涩的味道。至于使用<代码> Range[()] />代码来隐式地确保<代码> int >代码> s,我不确定。我可能还会附上代码中的注释来指出这一点,因为我不认为它有足够的表达力(与大多数隐含的东西一样)。。非常感谢各位,你们说得对,我绝对是一个初学者,这就是我努力学习这段代码的原因!如果这个论坛不适合初学者,那么像我这样有志于完美快速地学习这门语言的初学者应该怎么做呢?如果我不尝试,我就不会学习,如果我不要求专业人士帮我什么?