天天看點

python3-多級菜單小程式

利用所學的知識寫一個多級菜單

  • 要求:
    • 列印省、市、縣三級菜單
    • 可傳回上一級
    • 可随時退出程式
  • 代碼示範
# 定義一個包含(省,市,縣)3級嵌套字典
region = {
    "陝西":{
        "西安":{
            "大雁塔":[
                "音樂噴泉"],
            "小雁塔": [
                "小吃街"
            ]
        },
        "鹹陽":{
            "長武":[
                "蘋果"
            ],
            "永壽":[
                "法門寺"
            ]
        }
    },
    "上海":{
        "浦東":{
            "野生動物園":[
                "獅子"
            ]
        },
        "徐彙":{
            "外灘":[
                "東方明珠"
            ]
        },
        "寶山":{
            "九亭":[
                "歡樂谷"
            ]
        }
    },
    "北京":{
        "朝陽":{
            "雙橋路":[
                "和美國際大酒店"
            ]
        },
        "西城":{
            "天安門":[
                "故宮"
            ]
        },
    }
}

# print(region["上海"]["浦東"]["野生動物園"])

# 定義一個變量,值為False
exit_false = False

# 使用while循環,while not exit_false:   等于 while True;
while not exit_false:
	# 循環列印字典的第一級(也就是取出字典第一層的key值)
    for x in region:
        print(x)		# >>> 陝西,上海,北京
    # 輸入字元
    input_1 = input("請選擇省:")
	# 判斷是否存在輸入的字元
    if input_1 in region:
        while not exit_false:
        	# 在的話列印第一層
            for x1 in region[input_1]:
                print("\t", x1)
            # 輸入字元
            input_2 = input("請選擇市: ")
            # 判斷是否存在輸入的字元
            if input_2 in region[input_1]:
                while not exit_false:
                	# 如果在,列印第二層
                    for x2 in region[input_1][input_2]:
                        print("\t\t", x2)
                    # 輸入字元
                    input_3 = input("請選擇區:")
                    # 判斷是否存在輸入的字元
                    if input_3 in region[input_1][input_2]:
                        while not exit_false:
                        	# 如果在,列印第三層
                            for x3 in region[input_1][input_2][input_3]:
                                print("\t\t\t", x3)
                            input_4 = input("已到最後一級,輸入b傳回上一層,輸入q退出!")
                            # 按b傳回上一層
                            if input_4 == "b":
                                break
                            # 按q退出
                            elif input_4 == "q":
                                exit_false = True
                    if input_3 == "b":
                        break
                    elif input_3 == "q":
                        exit_false = True
            if input_2 == "b":
                break
            elif input_2 == "q":
                exit_false = True
    if input_1 == "b":
        print("已到第一層,不能再到上一步!")
    elif input_1 == "q":
        exit_false = True
           
  • 代碼運作
F:\python3>python test.py
陝西
上海
北京
請選擇城市:陝西
         西安
         鹹陽
請選擇地區: 鹹陽
                 長武
                 永壽
請選擇縣城:長武
                         蘋果
已到最後一級,輸入b傳回上一層,輸入q退出!
                 長武
                 永壽
請選擇縣城:b
         西安
         鹹陽
請選擇地區: b
陝西
上海
北京
請選擇城市:b
已到第一層,不能再到上一步!
陝西
上海
北京
請選擇城市:q

           

繼續閱讀