首页 > 技术文章 > python 小程序—三级菜单—循环和字典练习

luckycn 2017-05-05 10:49 原文

程序中利用多级字典来存储三级菜单, 通过一系列while循环和for循环,实现了三级菜单的查询,选择,退回上级菜单,退出程序几个功能。

缺点:程序语句过于重复,效率低。

 

#-*-coding:utf-8-*-
date={
    '北京':{
        '昌平区':{
            '沙河':['oldboy','test'],
            '通天苑':['链家地产','我爱我家']

        },
        '朝阳区':{
            '望京':['奔腾','默默'],
            '国贸':['CICC','HP'],
            '东直门':['Advent','飞信']
        },
        '海定区':{
            '天安门':['国旗','花'],
            '长成':['砖头','城墙'],
        }
    },
    '河南':{
        '郑州市':{
            '二七区':['二七塔','国美电器'],
            '回族区':['人民公园','大学城']
            },
        '商丘市':{
            '古城区':['古城墙','小吃一条街'],
            '东关区':['情人屋','医院']
        },
        '洛阳市':{
            '龙门区':['龙门石窟','皇宫'],
            '峡谷区':['龙潭大峡谷','牡丹园']
        }
}
}
may_exit=False
while not may_exit:
    for i in date:
        print (i)
    choice=raw_input('选择进入1:')
    if choice in date:
        while not may_exit:
            for i2 in date[choice]:
                print i2
            choice2 = raw_input('选择进入2,按q退回上一级:')
            if choice2 in date[choice]:
                while not may_exit:
                    for i3 in date[choice][choice2]:
                        print i3
                    choice3=raw_input('选择进入3,按q退回上一级:')
                    if choice3 in date[choice][choice2]:
                        for i4 in date[choice][choice2][choice3]:
                            print i4
                        choice4 = raw_input('最后的选择,按b退出,按q退回上一级:')
                        if choice4.upper()=='B':
                            may_exit = True
                            print '成功退出程序'
                        elif choice4.upper()=='Q':
                            pass
                        else:
                            print '选择结束,你的选择结果是%s:'%choice4
                            exit()



                    elif choice3.upper() == 'Q':
                        break

            elif choice2.upper()=='Q':
                 break


运行结果:

 

推荐阅读