我有一项任务是创建一个基本的计算器程序,其中包含加法、减法、乘法和除法选项。 Main 应调用菜单,菜单应显示选项,显示答案后程序应返回菜单。
当我运行它时,菜单正确显示并提示我选择数学运算,但当我输入一个值时(即使它是一个无效数字)程序什么也不做并返回到菜单。
def add(num1,num2):
num1, num2 = prompt()
return num1 + num2
def subtract(num1,num2):
num1, num2 = prompt()
return num1 - num2
def multiply(num1,num2):
num1, num2 = prompt()
return num1 * num2
def divide(num1,num2):
num1, num2 = prompt()
if num1 == 0 and num2 == 0:
print "Dividing zero by zero is undefined."
if num1 != 0 and num2 == 0:
print "Cannot divide by zero."
return float(num1) / num2
def prompt():
num1 = raw_input("Please enter the first value: ")
num2 = raw_input("Please enter the second value: ")
return (num1,num2)
def menu():
print "Basic Calculator"
print "1 - Add"
print "2 - Subtract"
print "3 - Multiply"
print "4 - Divide"
print "5 - Quit"
operation = int(raw_input("Please enter a value to choose from options above: "))
return operation
def main():
while True:
if menu() == 1:
answer = add(num1,num2)
print answer
elif menu() == 2:
answer = subtract(num1,num2)
print answer
elif menu() == 3:
answer == multiply(num1,num2)
print answer
elif menu() == 4:
answer == divide(num1,num2)
print answer
elif menu() == 5:
print "Thank you for using basic calculator"
print "Goodbye!"
break
else:
print "Invalid input"
if __name__=='__main__':
main()
如何让main函数调用加减乘除函数,如果选择选项5退出则break?
我要补充一点,我是 python 的新手。感谢您提供的任何帮助!
请您参考如下方法:
主要是你的错误,改成这样:
def main():
while True:
operation = menu()
if operation == 1:
answer = add(num1,num2)
print answer
elif operation == 2:
answer = subtract(num1,num2)
print answer
# And so on
因为您在每个 IF 上都调用了 menu(),所以每个输入只检查了一个 IF。
编辑
删除函数的所有输入:def add(num1,num2) 应该是 def add(): 因为它们返回值,它们不接受值.
