为什么WHILE循环没有结束?[Python]



im试图在Python中创建一个多值计算器,使用While、For/in语句和列表

numbers = []
out = 0
while out == 0:
numbers.append(int(input('Add a number: ')))
out2 = input('''[0]To keep adding numbers
[1]To add and leave: ''')
if out2 == 1:
out == 1
#In theory if out == 1 the while loop should end and go to:
for add in numbers:
add = numbers
print(add)

我试着用While Not这句话,但我犯了一个明显的错误。我想这是一个相当愚蠢的理解错误,但我真的不明白我做错了什么。如果你帮我做这件事,我会很高兴的。

首先,变量赋值应该使用=而不是==。您的问题是,在第二个input()(您让用户选择他/她是留下还是离开(中,您需要首先将输入从字符串转换为int,或者通过数字的字符串表示进行检查(故障保护(:

while out == 0:
numbers.append(int(input('Add a number: ')))
out2 = input('''[0]To keep adding numbers
[1]To add and leave: ''')
if out2 == '1':
out = 1

然而,打破循环的最佳方法是使用break:

while out == 0:
numbers.append(int(input('Add a number: ')))
out2 = input('''[0]To keep adding numbers
[1]To add and leave: ''')
if out2 == '1':
break

除了其他两个答案中指出的错误外,您从用户那里获得的输入是str,而不是将其转换为int

所以它永远不会达到if条件,因此您的程序不会结束。

请尝试这个

numbers = []
out = 0
while out == 0:
numbers.append(int(input('Add a number: ')))
out2 = input('''[0]To keep adding numbers
[1]To add and leave: ''')
print(type(out2))
if int(out2) == 1: # Convert the out2 to an int here
print(f" Inside if condition")
out = 1 # Use an assignment operator here

最新更新