亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復我的 Python 函數,使其返回輸入提示?

如何修復我的 Python 函數,使其返回輸入提示?

白板的微信 2022-05-19 18:29:54
我有一個菜單功能和選擇功能都有效。有 3 種菜單選擇。1 和 3 在某一時刻正常工作。2從來沒有。我不知道我做了什么把它搞砸了,但是當我運行模塊以通過 IDLE 進行測試時,它在第一次提示輸入我的菜單選項編號之后就無法正常工作。它應該完成一個 if 語句,然后重新啟動。我不知道還能嘗試什么。我希望我知道我改變了什么來搞砸它。tribbles = 1modulus = 2closer= 3def 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
查看完整描述

2 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

在檢查 的值之前,未聲明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:

...


查看完整回答
反對 回復 2022-05-19
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

最好在文件頂部定義所有函數,并在底部調用這些函數!其次,您的縮進不正確,我假設您將其粘貼到此處后發生了這種情況。最后,您永遠不會真正調用該函數choice(),而是用提示的結果覆蓋它。


下面我將糾正這些問題。


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...")

    choice() #added call to choice here because you always call choice after menu


def 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()


查看完整回答
反對 回復 2022-05-19
  • 2 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號