三级菜单
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 import json,os 4 menu = { 5 '北京':{ 6 '海淀':{ 7 '五道口':{ 8 'soho':'www.soho.com', 9 '网易':'www.163.com', 10 'google':'www.google.com' 11 }, 12 '中关村':{ 13 '爱奇艺':'www.iqiyi.com', 14 '汽车之家':'www.autohome.com.cn', 15 'youku':'www.youku.com', 16 }, 17 '上地':{ 18 '百度':'www.baidu.com', 19 }, 20 }, 21 '昌平':{ 22 '沙河':{ 23 '老男孩':{}, 24 '北航':{}, 25 }, 26 '天通苑':{}, 27 '回龙观':{}, 28 }, 29 '朝阳':{}, 30 '东城':{}, 31 }, 32 '上海':{ 33 '闵行':{ 34 "人民广场":{ 35 '炸鸡店':{} 36 } 37 }, 38 '闸北':{ 39 '火车战':{ 40 '携程':{} 41 } 42 }, 43 '浦东':{}, 44 }, 45 '山东':{}, 46 } 47 48 File = 'F:/三级菜单优化/info.txt' 49 Flag = 0 50 temp = {} 51 52 def json_file(dict:dict): 53 f = open(File,'w',encoding='utf-8') 54 json.dump(dict,f,ensure_ascii=False) 55 f.close() 56 f= open(File,'rb') 57 info = json.loads(f.read(),encoding='utf-8') 58 f.close() 59 return info 60 def showinfo(info): 61 '''信息显示''' 62 if type(info) is dict: 63 for i in info: 64 print(i) 65 print('1、增加 2、选择 3、删除 ') 66 else: 67 print('到底了,请返回!') 68 back(info) 69 70 def user_input(): 71 '''用户输入''' 72 while True: 73 content= input('>>:').strip() 74 while not (content.isnumeric() or content == 'b'): 75 content = input('重新输入:').strip() 76 continue 77 else: 78 if content == 'b': 79 Flag = 'b' 80 break 81 else: 82 Flag = int(content) 83 break 84 return Flag 85 86 def add_info(info): 87 '''添加信息''' 88 info_temp = info 89 city = input('城市:').strip() 90 if city not in info.keys(): 91 company= input('公司:').strip() 92 info[city] = company 93 info_update = info 94 with open(File,'w',encoding='utf-8')as f: 95 json.dump(info_update,f,ensure_ascii=False) 96 else: 97 print('%s已存在'%city) 98 f = open(File,'rb') 99 info_update = json.loads(f.read(),encoding='uft-8') 100 return info_update,info_temp 101 102 def sel_info(info): 103 '''选择''' 104 info_temp = info 105 selet = input('>>城市:').strip() 106 while (selet not in info): 107 selet = input('不存在城市:').strip() 108 continue 109 else: 110 info_n = info[selet] 111 112 return info_n, info_temp 113 def del_info(info): 114 '''删除数据''' 115 info_temp = info 116 content = input('删除:').strip() 117 while (content not in info): 118 content = input('删除不存在:').strip() 119 continue 120 else: 121 info.pop(content) 122 info_n = info 123 return info_n,info_temp 124 125 def back(info): 126 '''返回''' 127 for i in info: 128 print(i) 129 print('1、增加 2、选择 3、删除 ') 130 131 def run(): 132 while True: 133 info = json_file(menu) 134 while True: 135 showinfo(info) 136 Flag = user_input() 137 if Flag == 1: 138 info, temp = add_info(info) 139 elif Flag == 2: 140 info, temp = sel_info(info) 141 elif Flag == 3: 142 info, temp = del_info(info) 143 elif Flag == 'b': 144 info = temp 145 back(temp) 146 break 147 148 if __name__ == '__main__': 149 run()