天天看點

python很low的三級菜單(六)

實驗名稱:三級菜單

實驗要求:

1.可依次選擇進入各子菜單

2.可以在任意一步回退到上一層或直接退出選擇

3.所需知識點:清單、字典

思路:

1.先使用多級嵌套字典建立好三級菜單

2.使用while True:當條件成立時,進入下面for循環,列印目前菜單項。

3.使用者輸入

4.判斷輸入菜單是否存在(輸入q退出,b傳回上一層)

5.繼續while循環(直到q退出循環)

流程圖:

所需知識點:清單、字典

代碼實作:

#!/usr/bin/env python

#Author:Li QW

#多級嵌套字典

region_data={

      'china':{

         'beijing':{

            '昭陽區':['中手遊','萬家娛樂'],

            '五環内':['長城','故宮']

            },

         'nanjing':{

            '建邺區':['奧體中心','南京眼'],

            '鼓樓區':['南京師範','南藝']

         'shenzhen':{

            '龍華新區':['百貨','腸粉'],

            '福田區':['中康路','南京路']

         },

        },

      'USA':{

         '舊金山':{

                '1':['11','111'],

                '2':['22','222']

         '矽谷':{

         '紐約':{

      }

}

exit_flag = False

while not exit_flag: #預設不退出

    for i in region_data:  #列印第一層

        print(i)

    choice = input('進入>>>')  #輸入

    if choice in region_data:  #判斷在不在

        while not exit_flag:  #列印第二層

            for i2 in region_data[choice]: #進入下一層

                print('\t',i2)

            choice2 = input('進入>>>')

            if choice2 in region_data[choice]:

                while not exit_flag: #列印第三層

                    for i3 in region_data[choice][choice2]: #進入下一層

                        print('\t\t', i3)

                    choice3 = input('進入>>>')

                    if choice3 in region_data[choice][choice2]:

                        for i4 in region_data[choice][choice2][choice3]:

                            print('\t\t\t', i4)

                        choice4 = input('最後一層,按b傳回>>>')

                        if choice4 == 'b':

                            pass  # 占位符,不寫就報錯了。

                        elif choice4 == 'q':  #輸入q就條件不成立就退出目前循環

                            exit_flag = True

                    if choice3 == 'b':

                        break

                    elif choice3 == 'q':

                        exit_flag = True  

            if choice2 == 'b':

                break

            elif choice2 == 'q':

                exit_flag = True

<a href="http://down.51cto.com/data/2368734" target="_blank">附件:http://down.51cto.com/data/2368734</a>

本文轉自白羊IT51CTO部落格,原文連結:http://blog.51cto.com/000011211684/1980529,如需轉載請自行聯系原作者