我写了我的代码,有人告诉我像这样做循环,但它不对。它进入了一个无限循环,作为一个新手,我不确定是什么错。我查看了其他搜索,并且不了解他们如何修复代码,因为它们完全不同。不要将此标记为副本,因为它阻止我直接为我的代码获取答案。我是新手,我会把你所有的废话都带走。谢谢
print ("enter a number 1 - 2: ")
userin = input()
while userin != 1 or userin != 2:
print ("Enter a number that is 1 or 2")
if userin == "1":
print ("\n One")
elif userin == "2":
print ("\n One", "\n Two")
else:
print ("Enter a number that is 1 or 2")
这是没有while循环的原始代码:
print ("Enter a number (2 - 3): ")
userin = input()
if userin == "2":
print("\n One","\n Two")
elif userin == "3":
print("\n One", "\n Two", "\Three")
else: print("Invalid. Enter a number2 -3!")
答案 0 :(得分:3)
测试userin != "1" or userin != "2"
始终为真。如果用户输入1,则第二部分为真。如果用户输入2,则第一部分为真。所以,循环永远不会结束。尝试使用and
代替or
。
答案 1 :(得分:1)
您的代码中的问题是您只需在最开始处获取一次用户输入,并且while循环将继续基于该输入运行,从而导致无限循环。基本上,你再也不会接受输入了
尝试使用以下代码:
print ("enter a number 1 - 2: ")
userin = input()
while userin != "1" and userin != "2":
print ("Enter a number that is 1 or 2")
userin = input()
if userin == "1":
print ("One\n")
elif userin == "2":
print ("Two\n")
说明:最初您从用户那里获取输入。并且启动while循环时检查输入是否既不是1也不是2,即如果userin既不是1也不是2,则循环仅进行。此外,如果既不是1也不是2,则要求用户重新输入一个数字。然后使用userin = input()
再次输入
一旦用户输入1或2中的任何一个,循环退出并且" One"或"两个"根据用户的最终输入打印。
答案 2 :(得分:0)
# Please try this...
ip_list = [1, 2] # input list
print ("enter a number 1 - 2: ")
userin = input()
while userin not in ip_list:
print ("Enter a number that is 1 or 2")
userin = input()
>>> while userin not in ip_list:
... print("Enter a number that is 1 - 2!")
... userin = input()
...
Enter a number that is 1 - 2!
5
Enter a number that is 1 - 2!
6
Enter a number that is 1 - 2!
-1
Enter a number that is 1 - 2!
0
Enter a number that is 1 - 2!
9
Enter a number that is 1 - 2!
1 <===== Here it exits while loop
答案 3 :(得分:0)
你有几个问题。首先,userin
何时等于1
且等于2
?决不!您需要使用userin != 1 and userin != 2
。但是,这也不是正确的,因为您正在将字符串与整数进行比较。您看到input()
会返回一个字符串,但您要将其与1
和2
进行比较。您应该使用userin != '1'
and userin != '2'
,以便将字符串与字符串进行比较。最后一个问题是,您要继续将userin
与1
和2
进行比较,但是您不会在原始时间之后重新定义它。您需要在input()
循环中添加while
次调用。你的最终代码:
print ("enter a number 1 - 2: ")
userin = input()
while userin != '1' and userin != '2':
print ("Enter a number that is 1 or 2")
userin = input()
if userin == "1":
print ("\n One")
elif userin == "2":
print ("\n One", "\n Two")
您的else
是多余的,因为userin
既不是1
也不是2
,while
循环会再次运行并打印出来。