这是在Mac Terminal中完全发生的情况:
Enter command to calculate:
+,-,* or/:
在键入命令后,它要求我输入num1和num2:
type first number: 5
type second number: 5
然后它问我:
do you want to continue?
我键入“是”,程序重新开始。现在的问题是 第二次进行计算时,它不会问我是否要继续,但是会直接跳到:
Enter command to calculate:
+,-,* or/:
或有时:
type first number: 5
type second number: 5
为什么会这样?以及如何让该程序每次问我是否要在每次计算后继续?
loop = True
while loop:
def func():
usr = input('''Enter command to calculate:
+,-,* or/:
''')
if usr not in ("+,-,*,/"):
print("Error! command not allowed. Try again")
func()
num1 = float(input("type first number: "))
num2 = float(input("type second number: "))
if usr == "+":
print("{0} + {1} = {r:0.2f}".format(num1,num2,r=num1+num2))
elif usr == "-":
print("{0} - {1} = {r:0.2f}".format(num1,num2,r=num1-num2))
elif usr == "*":
print("{0} * {1} = {r:0.2f}".format(num1,num2,r=num1*num2))
elif usr == "/":
print("{0} / {1} = {r:0.2f}".format(num1,num2,r=num1/num2))
def func2():
x = input("do you want to continue? ")
if x == "yes":
func()
elif x == "no":
exit()
else:
print("That was not clear. Try again: ")
func2()
func()
func2()
答案 0 :(得分:1)
您知道在这种情况下应该怎么做吗?
取决于您的目标和确切的目标。
这是制作功能强大的控制台计算器的最简单方法,但同时又最不安全:
import os
import sys
import math
def main(argv = sys.argv):
print("EVAL Calculator\nType 'exit' to exit\n")
while True:
exp = input("Type a mathematical expression and press ENTER: ")
if exp.lower() == "exit": return
else: print(eval(exp))
if __name__ == "__main__":
main()
输入:2 + 2 * 2
输出:6
如果这不适用于您,则可以拆分字符串或使用正则表达式。
如果您只是想让代码正常工作,请将while True
移到代码末尾并列出代码本身。
对于打算供其他人使用的项目,建议不要使用以上代码。