python练习题:三级菜单
Posted foremost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python练习题:三级菜单相关的知识,希望对你有一定的参考价值。
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
测试环境:win7系统,python3.7.0,工具:pycharm-community-2018.1.4
menu = { \'北京\':{ \'海淀\':{ \'五道口\':{ \'soho\':{}, \'网易\':{}, \'google\':{} }, \'中关村\':{ \'爱奇艺\':{}, \'汽车之家\':{}, \'youku\':{}, }, \'上地\':{ \'百度\':{}, }, }, \'昌平\':{ \'沙河\':{ \'老男孩\':{}, \'北航\':{}, }, \'天通苑\':{}, \'回龙观\':{}, }, \'朝阳\':{}, \'东城\':{}, }, \'上海\':{ \'闵行\':{ "人民广场":{ \'炸鸡店\':{} } }, \'闸北\':{ \'火车站\':{ \'携程\':{} } }, \'浦东\':{}, }, \'山东\':{}, } # 需求: # 可依次选择进入各子菜单 # 可从任意一层往回退到上一层 # 可从任意一层退出程序 # 所需新知识点:列表、字典 import sys while True: for i in menu: print(\'\\t\', i) choice = input("以上为 一级菜单 请选择(q退出,a返回上一层,若输入有误继续执行输入)>:") if choice == \'q\': sys.exit(0) elif choice == \'a\': print(\'\\t\',\'已经是第一层了\') # 判断输入是否在一级目录里面 if choice in menu: while True: # 输出一级目录对应的二级目录 for i2 in menu[choice]: print(\'\\t\',i2) choice2 = input("以上为 二级菜单 请选择(q退出,a返回上一层,若输入有误继续执行输入)>:") if choice2 == \'q\': sys.exit(0) if choice2 == \'a\': break #判断 输入 是否在二级目录里面 if choice2 in menu[choice]: while True: # 输出二级目录对应的三级目录 for i3 in menu[choice][choice2]: print(\'\\t\',i3) choice3 = input("以上为 三级菜单 请选择(q退出,a返回上一层,若输入有误继续执行输入)>:") if choice3 == \'q\': sys.exit(0) if choice3 == \'a\': break # 判断输入是否在 三级目录里面 if choice3 in menu[choice][choice2]: while True: # 输出三级目录下对应的四级目录 for i4 in menu[choice][choice2][choice3]: print(\'\\t\',i4) choice4 = input("以上为 最后一层 请选择(q退出,a返回上一层,若输入有误继续执行输入)>:") if choice4 == \'q\': sys.exit(0) if choice4 == \'a\': break
#--------------------------代码简化版------------------------------------ # 发现有重复内容,不要写重复的代码, current_layer = menu last_layer = [] while True: for i in current_layer: print(i) choice = input(\'>\').strip() if choice in current_layer: last_layer.append(current_layer) print(last_layer) current_layer = current_layer[choice] elif choice == \'q\': break elif choice == \'a\': if len(last_layer) != 0: last = last_layer.pop() current_layer = last print(type(current_layer)) else: print(\'已经是第一层了\') else: print(\'输入错误,请重新输入:\') continue
# print("删除第一个元素:",sentence.pop(0) 、pop() 函数用于移除列表中的指定索引位置的一个元素(默认最后一个元素),并且返回该元素的值。
以上是关于python练习题:三级菜单的主要内容,如果未能解决你的问题,请参考以下文章