Python—While循环进入无限循环。我做错了什么?
我写了我的代码,有人告诉我这样做while循环,但这是不对的。它进入一个无限循环,作为一个新手,我不确定出了什么问题。我看过其他搜索,不明白他们是如何修复代码的,因为它们完全不同。不要将此标记为重复,因为它会阻止我直接获取代码的答案。我是新手,我会接受你的一切。谢谢Python—While循环进入无限循环。我做错了什么?,python,Python,我写了我的代码,有人告诉我这样做while循环,但这是不对的。它进入一个无限循环,作为一个新手,我不确定出了什么问题。我看过其他搜索,不明白他们是如何修复代码的,因为它们完全不同。不要将此标记为重复,因为它会阻止我直接获取代码的答案。我是新手,我会接受你的一切。谢谢 print ("enter a number 1 - 2: ") userin = input() while userin != 1 or userin != 2: print ("Enter a number that
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!")
测试userin!=“1”或userin!=“2”
始终为真。如果用户输入1,则第二部分为真。如果用户输入2,则第一部分为真。因此,循环永远不会结束。尝试使用和
而不是或
测试userin!=“1”或userin!=“2”
始终为真。如果用户输入1,则第二部分为真。如果用户输入2,则第一部分为true。因此,循环永远不会结束。尝试使用和
而不是或
。#请尝试此。。。
# 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
ip#u列表=[1,2]#输入列表
打印(“输入数字1-2:”)
userin=input()
当userin不在ip_列表中时:
打印(“输入一个1或2的数字”)
userin=input()
>>>当userin不在ip_列表中时:
... 打印(“输入一个1-2的数字!”)
... userin=input()
...
输入一个1-2的数字!
5.
输入一个1-2的数字!
6.
输入一个1-2的数字!
-1
输入一个1-2的数字!
0
输入一个1-2的数字!
9
输入一个1-2的数字!
1#请试试这个。。。
ip#u列表=[1,2]#输入列表
打印(“输入数字1-2:”)
userin=input()
当userin不在ip_列表中时:
打印(“输入一个1或2的数字”)
userin=input()
>>>当userin不在ip_列表中时:
... 打印(“输入一个1-2的数字!”)
... userin=input()
...
输入一个1-2的数字!
5.
输入一个1-2的数字!
6.
输入一个1-2的数字!
-1
输入一个1-2的数字!
0
输入一个1-2的数字!
9
输入一个1-2的数字!
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,循环将退出,并根据用户的最终输入打印“1”或“2”。代码中的问题是,您只需在一开始接受用户输入一次,而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,循环将退出,并根据用户的最终输入打印“1”或“2”。您有几个问题。首先,什么时候userin
既等于1
又等于2
?从未!您需要使用userin!=1和userin!=2
。不过,这也不完全正确,因为您正在将字符串与整数进行比较。您可以看到input()
返回一个字符串,但您正在将其与1
和2
进行比较。您应该使用userin!='1'
还有userin!='2'
这样您就可以对字符串进行比较了。最后一个问题是,您不断将userin
与1
和2
进行比较,但在原始时间之后,您从未重新定义它。您需要在while
循环中添加input()
调用。您的最终代码:
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
循环将再次运行并打印它。您有两个问题。首先,什么时候userin
既等于1
又等于2
?从未!您需要使用userin!=1和userin!=2
。不过,这也不完全正确,因为您正在将字符串与整数进行比较。您可以看到input()
返回一个字符串,但您正在将其与1
和2
进行比较。您应该使用userin!='1'
还有userin!='2'
这样您就可以对字符串进行比较了。最后一个问题是,您不断将userin
与1
和2
进行比较,但在原始时间之后,您从未重新定义它。您需要在while
循环中添加input()
调用。您的最终代码:
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
循环将再次运行并打印它。while userin!=1或userin!=2
在用户登录时应为“1”或userin!=“2”:
哈哈。。。缩进不正确的Python代码是错误的,不仅仅是“糟糕的风格”。用Python显示缩进很重要,因为它完全改变了含义。然而,线索是,input()
在Python3中返回一个文本字符串(str
),而1
是一个整数(int
),而“1”
也是一个文本字符串