尝试在 Python 中构建一个简单的计算器无法在数学符号之间进行迭代
Trying to build a simple calculator in Python can't manage to iterate between math symbols
# take operand
print('Select operator')
operator = str(input('Choose between + or * or - or /'))
if operator in ("+", "*", "-", "/"):
pass
else:
print ('error')
operator = str(input('Choose between + or * or - or /'))
我试图让它检查输入的符号是否实际上是“+”、“*”、“-”或“/”之一
例如,如果他们输入一个字母,我希望它 return 他们应该只输入其中一个符号。它适用于很多 elif,但它也会打印四次符号不正确。我想解决这个问题。
我认为 Georgy 是正确的,这与他们在上面链接的答案非常相似。但是,您还有一些其他问题 运行 可能会让您感到困惑。我想你要找的是类似这样的东西:
# take operand
print('Select operator')
while True:
operator = str(input('Choose between + or * or - or /'))
if operator in ("+", "*", "-", "/"):
break
else:
print('error')
continue
print(operator)
您想使用 while True
是因为您希望重复此操作直到达到结束条件。您还可以潜在地设置一个变量并在 while 循环中更改值,而不是执行 break
和 continue
。但是,在这种情况下,如果您遇到结束条件(用户输入了有效输入),那么您希望 break
退出 while 循环。如果没有,你想要continue
。我还会在 Whosebug 上推荐这个问题和答案:When to use "while" or "for" in Python
# take operand
print('Select operator')
operator = str(input('Choose between + or * or - or /'))
if operator in ("+", "*", "-", "/"):
pass
else:
print ('error')
operator = str(input('Choose between + or * or - or /'))
我试图让它检查输入的符号是否实际上是“+”、“*”、“-”或“/”之一
例如,如果他们输入一个字母,我希望它 return 他们应该只输入其中一个符号。它适用于很多 elif,但它也会打印四次符号不正确。我想解决这个问题。
我认为 Georgy 是正确的,这与他们在上面链接的答案非常相似。但是,您还有一些其他问题 运行 可能会让您感到困惑。我想你要找的是类似这样的东西:
# take operand
print('Select operator')
while True:
operator = str(input('Choose between + or * or - or /'))
if operator in ("+", "*", "-", "/"):
break
else:
print('error')
continue
print(operator)
您想使用 while True
是因为您希望重复此操作直到达到结束条件。您还可以潜在地设置一个变量并在 while 循环中更改值,而不是执行 break
和 continue
。但是,在这种情况下,如果您遇到结束条件(用户输入了有效输入),那么您希望 break
退出 while 循环。如果没有,你想要continue
。我还会在 Whosebug 上推荐这个问题和答案:When to use "while" or "for" in Python