标签:while span u盘 比较 lag utf-8 小天 and 流程图
今天是一个坎,在做三级菜单时卡住了,因为想要简洁的代码,就要用到递归函数,卡的不要不要的!不过最后在同学老师的提点帮助下,还是解决了!
作业要求:
三级菜单:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
文件操作还没有学到,暂时做到1,2两点,第3点明后天补上!
照旧,先上一下流程图:
详细代码:
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 #定义字典菜单三层 5 info={ 6 "家电":{ 7 "冰箱":{ 8 "双门":[‘海尔‘,‘西门子‘,‘容声‘], 9 "多门":[‘海尔‘,‘容声‘,‘海信‘], 10 "三门":[‘博世‘,‘海信‘,‘美的‘], 11 "对开门":[‘美的‘,‘三星‘,‘容声‘] 12 }, 13 "洗衣机":{ 14 "迷你":[‘小天鹅‘,‘海尔‘,‘松下‘], 15 "滚筒":[‘三洋‘,‘小天鹅‘,‘容声‘], 16 "波轮":[‘TCL‘,‘美的‘,‘LG‘], 17 "一体":[‘美的‘,‘LG‘,‘西门子‘] 18 }, 19 "空调":{ 20 "冷暖空凋":[], 21 "中央空调":[], 22 "柜式":[], 23 "壁挂式":[] 24 } 25 }, 26 "电脑": 27 { 28 "整机":{ 29 "笔记本":[], 30 "台式机":[], 31 "一体机":[], 32 "服务器":[] 33 }, 34 "外设":{ 35 "键盘":[], 36 "鼠标":[], 37 "摄像头":[], 38 "U盘":[] 39 }, 40 "配件":{ 41 "CPU":[], 42 "内存":[], 43 "显卡":[], 44 "主板":[] 45 } 46 47 }, 48 "图书":{ 49 "人文":{ 50 "历史":[], 51 "心理学":[], 52 "国学":[], 53 "法律":[] 54 }, 55 "少儿":{ 56 "绘本":[], 57 "科普":[], 58 "智力开发":[], 59 "手工游戏":[] 60 }, 61 ‘文艺‘:{ 62 ‘小说‘:[], 63 ‘文学‘:[], 64 ‘传记‘:[], 65 ‘书法‘:[] 66 } 67 } 68 } 69 70 71 72 def menu_open(info):#递归函数 传入下一层菜单 73 global exit_flag,conut#声明全局变量 74 #conut=1 75 exit_flag=True#先为真 76 while exit_flag: 77 if conut<4:#判断菜单层级不是最底层加一 78 conut+=1 79 _tab2=_tab.expandtabs(tabsize=(conut*3))#为了增加菜单的可读性,按层级来加tab键 80 for i in info: 81 print(_tab2,i) 82 if conut==4:#如果层级为4,也是最后一层 83 name=input("当前为第4是最后一层 按B/b返回<<< 按Q/q退出:") 84 else: 85 name=input("当前为第 \033[32;1m%s\033[0m 层,请输入名称进入下一层>>> 按B/b返回<<< 按Q/q退出:"% conut) 86 if name==‘b‘ or name==‘B‘: 87 conut-=2#因数进行循环就加一,所以需要减2 88 break 89 if name==‘Q‘ or name==‘q‘: 90 print("你已经退出菜单!") 91 exit_flag=False 92 break 93 if name in info and conut!=4:#如果存在并不是最后一层则调用函数 94 menu_open(info[name]) 95 else: 96 conut-=1 97 print("你输入的目录不存在!") 98 continue 99 100 101 global conut,_tab 102 conut=1 103 _tab=‘\t\t‘ 104 105 exit_flag = True 106 while exit_flag: 107 for i in info: 108 print(i) 109 name=input("当前为第\033[32;1m 1\033[0m 层,请输入名称进入下一层>>> 按Q/q退出:") 110 if name==‘Q‘ or name==‘q‘: 111 print("你已经退出菜单!") 112 exit_flag=False 113 114 if name in info: 115 menu_open(info[name]) 116 else: 117 print("你输入的目录不存在!") 118 continue
菜单内容比较少,将就着吧,回头有空再让它丰满起来!
标签:while span u盘 比较 lag utf-8 小天 and 流程图
原文地址:http://www.cnblogs.com/uge3/p/6816485.html