为什么IDLE告诉我这个没有定义?

问题描述 投票:0回答:2

因此,我试图编写一个使用函数来创建用户输入菜单的代码。基本上,这只是输入您想要的美元数量,然后选择将其转换为哪种货币。我绝对迷路了,因为每次我尝试运行这段代码之前,我都会输入“ 1”并说“ 20美元”,例如,它告诉我“当我明确将其作为用户输入时,则未定义”。

def DisplayMenu():
    print("Choose a menu option:")
    print("1. European Euro")
    print("2. British Pound")
    print("3. Mexican Peso")
    print("4. Chinese Yuan")
    print("5. Japanese Yen")
    print("6. Quit")
    selection = int(input("Enter your selection: "))
    dollars = eval(input("Enter the dollar amount to convert: "))



def DollarConvert(selection, dollars):
    if selection == "1":
        conversion = dollars * 0.921
    elif selection == "2":
        conversion = dollars * 0.807
    elif selection == "3":
        conversion = dollars * 24.246
    elif selection == "4":
        conversion = dollars * 7.085
    elif selection == "5":
        conversion = dollars * 108.03
    elif selection == "6":
        quit
    elif selection > 6:
        print("Invalid input.")


DisplayMenu()

print("$ ",dollars," = ",chr(8364),conversion)

希望有人可以帮助我,因为我没有想法

python python-idle
2个回答
0
投票

您从不会运行或从DollarConvert()运行,也不会从任何一个函数接收输出。更改函数以返回值,如下所示:

def DollarConvert(selection, dollars):
if selection == "1":
    return dollars * 0.921
elif selection == "2":
    return dollars * 0.807

等然后只需将变量设置为其输出即可。


-1
投票

您正准备引用未在打印语句中分配的转换变量。您可以重新排列代码并按如下所示打印结果:

  def DisplayMenu():
        print("Choose a menu option:")
        print("1. European Euro")
        print("2. British Pound")
        print("3. Mexican Peso")
        print("4. Chinese Yuan")
        print("5. Japanese Yen")
        print("6. Quit")
        selection = int(input("Enter your selection: "))
        dollars = eval(input("Enter the dollar amount to convert: "))
        conversion = DollarConvert(selection, dollars)
        print("$ ",dollars," = ",chr(8364),conversion)

    def DollarConvert(selection, dollars):
        if selection == "1":
            conversion = dollars * 0.921
        elif selection == "2":
            conversion = dollars * 0.807
        elif selection == "3":
            conversion = dollars * 24.246
        elif selection == "4":
            conversion = dollars * 7.085
        elif selection == "5":
            conversion = dollars * 108.03
        elif selection == "6":
            quit
        elif selection > 6:
            print("Invalid input.")


    DisplayMenu()
© www.soinside.com 2019 - 2024. All rights reserved.