如何修复我的 Python 函数,使其返回输入提示?

我有一个菜单功能和选择功能都有效。有 3 种菜单选择。1 和 3 在某一时刻正常工作。2从来没有。我不知道我做了什么把它搞砸了,但是当我运行模块以通过 IDLE 进行测试时,它在第一次提示输入我的菜单选项编号之后就无法正常工作。它应该完成一个 if 语句,然后重新启动。


我不知道还能尝试什么。我希望我知道我改变了什么来搞砸它。


tribbles = 1

modulus = 2

closer= 3


def menu():

    print('    -MENU-')

    print('1: Tribbles Exchange')

    print('2: Odd or Even?')

    print("3: I'm not in the mood...")


menu()

def choice():

    choice = int(input('\n Enter the number of your menu choice: ')



if choice == tribbles:

    bars = int(input('\n How many bars of gold-pressed latinum do you have? '))

    print('\n You can buy ',bars * 5000 / 1000,' Tribbles.')

    menu()

    choice()

elif choice == modulus:

    num = int(input('\n Enter any number:'))

    o_e = num % 2

    if num == 0:

        print(num,' is an even number')

    elif num == 1:

        print(num,' is an odd number')

    menu()

    choice()

elif choice == closer:

    print('\n Thanks for playing!')

    exit()

else:

    print('Invalid entry. Please try again...')

    menu()

    choice()

print(' ')

choice = int(input('\n Enter the number of your menu choice: '))

我希望它返回字符串加上所有公式结果,然后再次询问,除非选择了选项 3 并执行了 exit()。但是,它在第一次输入后返回“输入您的菜单选项的编号:”,然后在第二个提示符上选择任何其他选项后返回空白。f


白板的微信
浏览 191回答 2
2回答

忽然笑

在检查 的值之前,未声明choice该变量。choice您必须在以下行之前捕获您的输入:if choice == tribbles:. 您只是在定义一个函数,它甚至不返回您选择的值或设置全局变量。试试这个:def menu():    print('    -MENU-')    print('1: Tribbles Exchange')    print('2: Odd or Even?')    print("3: I'm not in the mood...")menu()choice = int(input('\n Enter the number of your menu choice: '))if choice == tribbles:...

繁星点点滴滴

最好在文件顶部定义所有函数,并在底部调用这些函数!其次,您的缩进不正确,我假设您将其粘贴到此处后发生了这种情况。最后,您永远不会真正调用该函数choice(),而是用提示的结果覆盖它。下面我将纠正这些问题。tribbles = 1modulus = 2closer= 3def menu():    print('    -MENU-')    print('1: Tribbles Exchange')    print('2: Odd or Even?')    print("3: I'm not in the mood...")    choice() #added call to choice here because you always call choice after menudef choice():    my_choice = int(raw_input('\nEnter the number of your menu choice: ')) #you were missing a ) here! and you were overwriting the function choice again    #changed choice var to my_choice everywhere    if my_choice == tribbles:        bars = int(raw_input('\nHow many bars of gold-pressed latinum do you have? '))        print('\n You can buy ',bars * 5000 / 1000,' Tribbles.')        menu()    elif my_choice == modulus:        num = int(raw_input('\n Enter any number:'))        o_e = num % 2        if num == 0:            print(num,' is an even number')        elif num == 1:            print(num,' is an odd number')        menu()    elif choice == closer:        print('\n Thanks for playing!')        exit()    else:        print('Invalid entry. Please try again...')        menu()    print(' ')if __name__ == "__main__": #standard way to begin. This makes sure this is being called from this file and not when being imported. And it looks pretty!    menu()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python