Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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—While循环进入无限循环。我做错了什么?_Python - Fatal编程技术网

Python—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

我写了我的代码,有人告诉我这样做while循环,但这是不对的。它进入一个无限循环,作为一个新手,我不确定出了什么问题。我看过其他搜索,不明白他们是如何修复代码的,因为它们完全不同。不要将此标记为重复,因为它会阻止我直接获取代码的答案。我是新手,我会接受你的一切。谢谢

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”
也是一个文本字符串