第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在收到無(wú)效輸入后,如何阻止程序跳轉(zhuǎn)到不同的 if 語(yǔ)句?

在收到無(wú)效輸入后,如何阻止程序跳轉(zhuǎn)到不同的 if 語(yǔ)句?

鴻蒙傳說(shuō) 2023-10-18 15:29:31
作為我自己的第一個(gè)程序,我編寫(xiě)了一個(gè)文本游戲,您可以在其中輸入(a)或(b)并以這種方式?jīng)Q定您的角色做出哪個(gè)決定。效果很好,但我有一個(gè)問(wèn)題。例如,如果用戶在第一個(gè)決策中輸入“a”,在第二個(gè)決策中輸入“b”,但在第三個(gè)決策中輸入無(wú)效的內(nèi)容,則下一個(gè)有效輸入將再次觸發(fā)第一個(gè)決策,而不是第三個(gè)決策。我試圖制作一個(gè)簡(jiǎn)短的版本來(lái)描述我的問(wèn)題。任何幫助表示贊賞。def test():    while True:        input_zero = input("1. > ")        if input_zero == "a":            print("a")            input_a = input("2. > ")            if input_a == "a":                print("a, a")                break            elif input_a == "b":                print("a, b")                break            else:                print("Invalid input.")        elif input_zero == "b":            print("b")            input_b = input("2. > ")            if input_b == "a":                print("b, a")                break            elif input_b == "b":                print("b, b")                break            else:                print("Invalid input.")        else:            print("Invalid input.")test()
查看完整描述

1 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

因此,我認(rèn)為,將您的選擇打包到字典中,類(lèi)似于下面所示的那樣,應(yīng)該會(huì)更容易管理這里的選擇(幾乎肯定有比這更好的方法)。然后每次做出選擇時(shí)添加到空字符串并嘗試訪問(wèn)字典。如果選擇在字典中,那么它將恢復(fù)一個(gè)文本字符串和一個(gè)結(jié)束狀態(tài),這將使我們能夠在需要時(shí)結(jié)束游戲。


這種方法還可以生成所有可能的狀態(tài)組合,從而使測(cè)試變得更加容易itertools,以便您可以找出缺少的狀態(tài)。如果找到 end_state(元組第二個(gè)位置的值為 1),那么您將收到游戲結(jié)束消息并關(guān)閉循環(huán)。如果該元素不在字典中,則刪除最后一個(gè)選擇并invalid_input調(diào)用該函數(shù)。


def test():


    choice_dict = {"a": (dP_lvl1.path_a, 0),

                   "b": (dP_lvl1.path_b, 0), 

                   "c": (dP_lvl1.path_c, 1)

                   "bb": (dP_lvl2.path_bb, 0),

                   "aa": (dP_lvl2.path_aa, 0),

                   "ba": (dP_lvl2.path_ba, 0),

                   "ab": (dP_lvl2.path_ab, 0),

                   "aaa": (dP_lvl3.path_aaa, 0),

                   "aab": (dP_lvl3.path_aab 0),

                   "aba": (dP_lvl3.path_aba, 0),

                   "abb": (dP_lvl3.path_abb, 0),

                   "bab": (dP_lvl3.path_bab, 0),

                   "bba": (dP_lvl3.path_bba} 0),

                   "bbb": (dP_lvl3.path_bbb, 0),

                   "aaaa": (dP_lvl4.path_aaaa, 0),

                   "abaa": (dP_lvl4.path_abaa, 0),

                   "aaba": (dP_lvl4.path_aaba, 0),

                   "aaab": (dP_lvl4.path_aaab, 1),

                   "bbba": (dP_lvl4.path_bbba, 0),

                   "bbab": (dP_lvl4.path_bbab, 0),

                   "babb": (dP_lvl4.path_babb, 0),

                   "abbb": (dP_lvl4.path_abbb, 0),

                   "abba": (dP_lvl4.path_abba, 1),

                   "abab": (dP_lvl4.path_abab, 0),

                   "aabb": (dP_lvl4.path_aabb, 0),

                   "baab": (dP_lvl4.path_baab, 0),

                   "bbaa": (dP_lvl4.path_bbaa, 1),

                   "baba": (dP_lvl4.path_baba, 0),

                   "baaa": (dP_lvl4.path_baaa, 0),

               "bbbb": (dP_lvl4.path_bbbb, 0),}

    # etc. you get the idea


    decisions = ""

    playing = True

    while playing:

        decision = input("choose an option 'a' or 'b':")

        decisions += decision


        try:

            data, end_state = choice_dict[decisions]

            print(data)

            if end_state:

                playing = False

                print("Game over")

            else:

                continue

        except KeyError:

            decisions = decisions[:-1]

            invalid_input()

    


查看完整回答
反對(duì) 回復(fù) 2023-10-18
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)