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