1. 三级菜单优化 3个小时
1 c = { 2 3 } 4 5 exit_flag = False 6 7 while not exit_flag: 8 choice_level_1 = input('欢迎来到国家省市区查询系统,按任意键开始查询,退出请输q:') 9 if choice_level_1 == 'q': 10 print('系统已退出') 11 exit_flag = True 12 13 else: 14 while True: 15 s_p = '省份列表' 16 print(s_p.center(50, '-')) 17 if len(c) == 0: 18 s_n = '无' 19 print(s_n.center(50, ' ')) 20 else: 21 for index, i in enumerate(c.keys()): 22 print('%s. %s' % (index, i)) 23 print(s_p.center(50, '-')) 24 25 choice_level_3 = input('输入a:增加;输入d:删除;输入e:修改;输入n:查看某省城市子列表;返回上级请输q:') 26 if choice_level_3 == 'a': 27 while True: 28 province_add = input('请输入新增省份名称(返回上级请输q): ') 29 if province_add == 'q': 30 break 31 elif province_add not in c.keys(): 32 add_confirm = input('您想要添加的省份名称为:%s,确认请输1,重新输入请输2' % province_add) 33 if add_confirm == '1': 34 c[province_add] = {} 35 print('%s添加成功!' % province_add) 36 elif add_confirm == '2': 37 pass 38 else: 39 print('输入有误,请重新输入') 40 else: 41 print('对不起,您要添加的省份已经在系统数据中,请勿重复添加,谢谢!') 42 elif choice_level_3 == 'd': 43 while True: 44 province_del = input('请输入删除省份名称(返回上级请输q): ') 45 if province_del == 'q': 46 break 47 elif province_del in c.keys(): 48 del_confirm = input('您想要删除的省份名称为:%s,确认请输1,重新输入请输2' % province_del) 49 if del_confirm == '1': 50 c.pop(province_del) 51 print('%s删除成功!' % province_del) 52 elif del_confirm == '2': 53 pass 54 else: 55 print('输入有误,请重新输入') 56 else: 57 print('对不起,您要删除的省份不在系统数据中,请重新输入,谢谢!') 58 elif choice_level_3 == 'e': 59 while True: 60 province_edit = input('请输入要修改的省份名称(返回上级请输q): ') 61 if province_edit == 'q': 62 break 63 elif province_edit in c.keys(): 64 province_new = input('请输入修改后的省份名称为:') 65 if province_new == province_edit: 66 print('对不起,新名称不能与旧名称相同,请重新输入') 67 elif province_new in c.keys(): 68 print('对不起,您的修改后的新名称在省份数据库中已存在,请重新输入,谢谢') 69 else: 70 edit_confirm = input('您想要将省份%s的名称变更为%s,确认请输1,重新输入请输2' % (province_edit, province_new)) 71 if edit_confirm == '1': 72 c[province_new] = c.pop(province_edit) 73 print('修改成功!%s的名字已经变为%s' % (province_edit, province_new)) 74 elif edit_confirm == '2': 75 pass 76 else: 77 print('输入有误,请重新输入') 78 else: 79 print('对不起,您要修改的省份不在系统数据中,请重新输入谢谢!') 80 elif choice_level_3 == 'n': 81 if len(c) == 0: 82 print('当前数据库为空,请先添加后查看,谢谢!') 83 else: 84 while True: 85 choice_province = input('请输入您想要查看的省份名称,输入成功后进入该省份的城市子列表(返回请输q):') 86 if choice_province == 'q': 87 break 88 elif choice_province in c.keys(): 89 while True: 90 s_c = '%s省城市列表' % choice_province 91 print(s_c.center(50, '-')) 92 if len(c[choice_province]) == 0: 93 s_n = '无' 94 print(s_n.center(50, ' ')) 95 else: 96 for index, i in enumerate(c[choice_province].keys()): 97 print('%s. %s' % (index, i)) 98 print(s_c.center(50, '-')) 99 100 choice_level_4 = input('输入a:增加;输入d:删除;输入e:修改;输入n:查看某市区级子列表;返回上级请输q:') 101 if choice_level_4 == 'a': 102 while True: 103 city_add = input('请输入新增城市名称(返回上级请输q): ') 104 if city_add == 'q': 105 break 106 elif city_add not in c[choice_province].keys(): 107 add_confirm = input('您想要添加的城市名称为:%s,确认请输1,重新输入请输2' % city_add) 108 if add_confirm == '1': 109 c[choice_province][city_add] = {} 110 print('%s添加成功!' % city_add) 111 elif add_confirm == '2': 112 pass 113 else: 114 print('输入有误,请重新输入') 115 else: 116 print('对不起,您要添加的城市已经在系统数据中,请勿重复添加,谢谢!') 117 elif choice_level_4 == 'd': 118 while True: 119 city_del = input('请输入删除城市名称(返回上级请输q): ') 120 if city_del == 'q': 121 break 122 elif city_del in c[choice_province].keys(): 123 del_confirm = input('您想要删除的城市名称为:%s,确认请输1,重新输入请输2' % city_del) 124 if del_confirm == '1': 125 c[choice_province].pop(city_del) 126 print('%s删除成功!' % city_del) 127 elif del_confirm == '2': 128 pass 129 else: 130 print('输入有误,请重新输入') 131 else: 132 print('对不起,您要删除的城市不在系统数据中,请重新输入,谢谢!') 133 134 elif choice_level_4 == 'e': 135 while True: 136 city_edit = input('请输入要修改的城市名称(返回上级请输q): ') 137 if city_edit == 'q': 138 break 139 elif city_edit in c[choice_province].keys(): 140 city_new = input('请输入修改后的城市名称为:') 141 if city_new == city_edit: 142 print('对不起,新名称不能与旧名称相同,请重新输入') 143 elif city_new in c[choice_province].keys(): 144 print('对不起,新名称在%s省城市数据库中已存在,请重新输入,谢谢' % choice_province) 145 else: 146 edit_confirm = input( 147 '您想要将城市%s的名称变更为%s,确认请输1,重新输入请输2' % (city_edit, city_new)) 148 if edit_confirm == '1': 149 c[choice_province][city_new] = c[choice_province].pop(city_edit) 150 print('修改成功!%s的名字已经变为%s' % (city_edit, city_new)) 151 elif edit_confirm == '2': 152 pass 153 else: 154 print('输入有误,请重新输入') 155 else: 156 print('对不起,您要修改的城市不在系统数据中,请重新输入谢谢!') 157 158 elif choice_level_4 == 'n': 159 if len(c[choice_province]) == 0: 160 print('当前数据库为空,请先添加后查看,谢谢!') 161 else: 162 while True: 163 choice_city = input('请您输入城市名称,输入成功后进入该城市区级子列表(返回上级请输q):') 164 if choice_city == 'q': 165 break 166 elif choice_city in c[choice_province].keys(): 167 while True: 168 s_d = '%s省%s市区级列表' % (choice_province, choice_city) 169 print(s_d.center(50, '-')) 170 if len(c[choice_province][choice_city]) == 0: 171 s_n = '无' 172 print(s_n.center(50, ' ')) 173 else: 174 for index, i in enumerate(c[choice_province][choice_city]): 175 print('%s. %s' % (index, i)) 176 print(s_d.center(50, '-')) 177 178 choice_level_5 = input('输入a:增加;输入d:删除;输入e:修改;返回上级请输q:') 179 if choice_level_5 == 'a': 180 while True: 181 district_add = input('请输入新增区级名称(返回上级请输q): ') 182 if district_add == 'q': 183 break 184 elif district_add not in c[choice_province][choice_city]: 185 add_confirm = input( 186 '您想要添加的区级名称为:%s,确认请输1,重新输入请输2' % district_add) 187 if add_confirm == '1': 188 c[choice_province][choice_city][district_add] = {} 189 print('%s添加成功!' % district_add) 190 elif add_confirm == '2': 191 pass 192 else: 193 print('输入有误,请重新输入') 194 else: 195 print('对不起,您要添加的区级名称已经在系统数据中,请勿重复添加,谢谢!') 196 197 elif choice_level_5 == 'd': 198 while True: 199 district_del = input('请输入删除区级名称(返回上级请输q): ') 200 if district_del == 'q': 201 break 202 elif district_del in c[choice_province][choice_city]: 203 del_confirm = input( 204 '您想要删除的区级名称为:%s,确认请输1,重新输入请输2' % district_del) 205 if del_confirm == '1': 206 c[choice_province][choice_city].pop(district_del) 207 print('%s删除成功!' % district_del) 208 elif del_confirm == '2': 209 pass 210 else: 211 print('输入有误,请重新输入') 212 else: 213 print('对不起,您要删除的区级不在系统数据中,请重新输入,谢谢!') 214 elif choice_level_5 == 'e': 215 while True: 216 district_edit = input('请输入要修改的区级名称(返回上级请输q): ') 217 if district_edit == 'q': 218 break 219 elif district_edit in c[choice_province][choice_city]: 220 district_new = input('请输入修改后的区级名称为:') 221 if district_new == district_edit: 222 print('对不起,新名称不能与旧名称相同,请重新输入') 223 elif district_new in c[choice_province][choice_city]: 224 print('对不起,新名称已经存在于%s省%s市的区级列表,请重新输入' % ( 225 choice_province, choice_city)) 226 else: 227 edit_confirm = input( 228 '您想要将区级%s的名称变更为%s,确认请输1,重新输入请输2' % ( 229 district_edit, district_new)) 230 if edit_confirm == '1': 231 c[choice_province][choice_city].pop( 232 district_edit) 233 c[choice_province][choice_city][ 234 district_new] = [] 235 print( 236 '修改成功!%s的名字已经变为%s' % ( 237 district_edit, district_new)) 238 elif edit_confirm == '2': 239 pass 240 else: 241 print('输入有误,请重新输入') 242 else: 243 print('对不起,您要修改的区级不在系统数据中,请重新输入谢谢!') 244 245 elif choice_level_5 == 'q': 246 break 247 248 else: 249 print('对不起,您所输入的操作不存在,请重新输入,谢谢!') 250 else: 251 print('对不起,您输入的城市名称不存在,请重新输入') 252 253 elif choice_level_4 == 'q': 254 break 255 256 else: 257 print('对不起,您所输入的操作不存在,请重新输入,谢谢!') 258 else: 259 print('对不起,您输入的省份名称不存在,请重新输入') 260 261 elif choice_level_3 == 'q': 262 break 263 264 else: 265 print('对不起,您所输入的操作不存在,请重新输入,谢谢!')
2. # 列举布尔值为False的所有值
None
False
所有值为0的数
"" 空字符串
[] 空列表
() 空元组
{} 空字典
3. 练习题
1 利用For循环和range输出 2 For循环从大到小输出1-100 3 4 for i in range(1, 101): 5 print(101-i) 6 7 for i in range(1, 101): 8 print(i) 9 10 a = 100 11 while 0< a <= 100: 12 print(a) 13 a -= 1 14 15 16 a = 1 17 while 0 < a <= 100: 18 print(a) 19 a += 1 20 21 22 for i in range(1, 10): 23 for j in range(1, 10): 24 print(i * j)