Skip to main content
 首页 » 编程设计

Python main 函数从不调用其他函数

2025年05月04日14lhb25

我有一项任务是创建一个基本的计算器程序,其中包含加法、减法、乘法和除法选项。 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(): 因为它们返回值,它们不接受值.