Python 3.x I';I’我想写一个计算器
这正是Mac终端中发生的情况:Python 3.x I';I’我想写一个计算器,python-3.x,Python 3.x,这正是Mac终端中发生的情况: 输入要计算的命令: +,-,*或/: 键入命令后,它要求我输入num1和num2: 键入第一个数字:5 键入第二个数字:5 然后它问我: 要继续吗? 我输入“是”,程序重新开始。现在问题是,, 第二次计算时,它不会问我是否要继续,但它会直接跳到: 输入要计算的命令: +,-,*或/: 或者有时: 键入第一个数字:5 键入第二个数字:5 为什么会这样?我怎样才能让程序每次都问我是否想在每次计算后继续 loop = True while loop: def
输入要计算的命令:
+,-,*或/:
键入命令后,它要求我输入num1和num2:
键入第一个数字:5
键入第二个数字:5
然后它问我:
要继续吗?
我输入“是”,程序重新开始。现在问题是,,
第二次计算时,它不会问我是否要继续,但它会直接跳到:
输入要计算的命令:
+,-,*或/:
或者有时:
键入第一个数字:5
键入第二个数字: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()
你知道在这种情况下我该怎么办吗 这取决于你的目标和你想做什么 下面是制作功能强大的控制台计算器的最简单方法,但同时也是最不安全的方法:
导入操作系统
导入系统
输入数学
def main(argv=sys.argv):
打印(“评估计算器\n键入“退出”退出\n”)
尽管如此:
exp=输入(“键入数学表达式并按ENTER:”)
如果exp.lower()=“退出”:返回
其他:打印(评估(实验))
如果名称=“\uuuuu main\uuuuuuuu”:
main()
输入:2+2*2产出:6 如果这不适用于您,您可以拆分字符串或使用正则表达式。
如果您只是想让代码正常工作,请将
while True
移动到代码末尾,并将代码本身制成表格
不建议将上述代码用于其他人使用的项目。可能是因为您正试图反复重新定义这两个函数?你的代码结构不好你知道在这种情况下我应该怎么做吗?我还是个初学者谢谢先生,很抱歉反应太晚了。我很难理解sys.argv的功能和'if main==“main”:main()'部分。我删除了一个True,并将另一个True移动到代码末尾。它现在似乎工作得很好。