尝试在 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 循环中更改值,而不是执行 breakcontinue。但是,在这种情况下,如果您遇到结束条件(用户输入了有效输入),那么您希望 break 退出 while 循环。如果没有,你想要continue。我还会在 Whosebug 上推荐这个问题和答案:When to use "while" or "for" in Python