python - 计算器执行循环直到“退出”
问题描述
我必须在 python 3 上做这个计算器,它必须循环执行,直到用户键入exit
. 此外,在用户输入无效字符之前进行编程,例如当要求输入运算符或数字时的字母。
我必须使用while
, if
... 但是,我不能使用import
.
while True:
operator = input("Give me an operator or \"exit\" to stop : ")
if operator == "exit":
break
if operator != "+" or "-" or "*" or "/":
print ("You must enter an operator")
break
no1 = input("Enter a number: ")
no2 = input("Enter a number: ")
if operator == "+":
output = int(num1) + int(num2)
elif operator == "-":
output = int(num1) - int(num2)
elif operator == "*":
output = int(num1) * int(num2)
else :
output = int(num1) / int(num2)
print("The result is " + str(result))
print("See you soon!")
我希望当我们输入除运算符之外的任何内容时它实际上不会停止,我希望它循环回:
operator = input("Give me an operator or \"exit\" to stop : ")
解决方案
您将在下面找到您的代码按预期工作,但是让我们从一般规则开始。
- 请注意,当您声明变量时,请在代码的其他地方使用相同的变量。
- 在尝试执行脚本之前测试代码的简单部分。你测试操作员的条件完全被打破了。
while True:
operator = input("Give me an operator or \"exit\" to stop : ")
if operator == "exit":
break
if operator not in [ "+", "-", "*" , "/"]: #<== here you condition is wrong ,do this instead
print ("You must enter an operator")
continue
try:
num1 = int(input("Enter a number: ")) #
num2 = int(input("Enter a number: ")) # <== both of this variable are not use else where ,rename to be consitdnt with the rest of your code
except ValueError:
print("Please enter an integer")
if operator == "+":
output = num1 + num2
elif operator == "-":
output = num1 - num2
elif operator == "*":
output = num1 * num2
else :
output = num1 / num2
print("The result is " + str(output)) #<=== here also, results was not defined
print("See you soon!")
推荐阅读
- azure - 在 js 中侦听 Azure 规模集事件
- python - How to create self defined token in Django Token Auth
- android-anr-dialog - 收到“android.intent.action.SCREEN_ON”时出现 ANR
- python - 在 Heroku 中部署 Django 管理模板 css 时未加载?
- java - 就像在回收站视图中击中柜台一样
- python - 重新分配整个元组工作
- cmake - 将慢速外部项目添加到 cmake
- .net-core - NET Core Web 应用程序 - System.Net.Sockets.SocketException
- docker - 每个容器的新索引?
- api - 如何将代码点火器中的upload_path设置为url?