已全部完成题目要求了,,添加字典还不是很理解完全照抄
其他的都容易理解,差一些防止用户误输入的需求
添加一点就容易报错,就暂时先这样吧
用户交互显示类似省市县 N 级联动的选择
# a. 允许用户增加内容
# b. 允许用户选择查看某一个级别内容
dic = { "植物": {"草本植物": ["牵牛花", "瓜叶菊", "葫芦", "翠菊", "冬小麦", "甜菜"], "木本植物": ["乔木", "灌木", "半灌木", "如松", "杉", "樟"], "水生植物": ["荷花", "千屈菜", "菖蒲", "黄菖蒲", "水葱", "再力花", "梭鱼草"]}, "动物": {"两栖动物": ["山龟", "山鳖", "石蛙", "娃娃鱼", "蟾蜍", "龟", "鳄鱼", "蜥蜴", "蛇"], "禽类": ["雉鸡", "原鸡", "长鸣鸡", "昌国鸡", "斗鸡", "长尾鸡", "乌骨鸡"], "哺乳类动物": ["虎", "狼", "鼠", "鹿", "貂", "猴", "貘", "树懒", "斑马", "狗"]}} li = [] li_2 = [] flag = True a = True # 查看第一层 while flag: for k,v in enumerate(dic,1): print(k,v) li.append(v) s = input("输入序号查找,按i添加:") if s.isnumeric(): s = int(s) print(li[s-1]) # 查看第二层 while flag: for k,v in enumerate(dic[li[s-1]],1): print(k,v) li_2.append(v) c = input("输入序号查找: 返回上一层按b,退出按q:") if c.isalpha(): a =False c = str(c) if c.lower() == "b": li.clear() break elif c.lower() =="q": flag = False break elif c.isnumeric(): c = int(c) else: print("输入错误") # 查看第三层 while flag: for v in dic[li[s-1]][li_2[c-1]]: print(v) c = input("返回上一层按b,退出按q:") c = str(c) if c.lower() == "b": li_2.clear() break elif c.lower() =="q": flag = False break
#添加内容
else: s.isalpha() s = str(s) if s.lower() == "i": lx = input("类型:") if dic.get(lx, 1) == 1: dic[lx] = {} else: print("已存在") zl = input("种类:") if dic[lx].get(zl, 1) == 1: dic[lx][zl] = [] else: print("已存在") mc = input("名称:") li.clear() if mc in dic[lx][zl]: print("已存在") else: dic[lx][zl].append(mc)