1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # 查看,返回上一层,退出操作。 4 dic = { 5 '植物': 6 { 7 '草本植物': 8 ['牵牛花', '瓜叶菊', '葫芦', '翠菊', '冬小麦', '甜菜'], 9 '木本植物': 10 ['乔木', '灌木', '半灌木', '如松', '杉', '樟'], 11 '水生植物': 12 ['荷花', '千屈菜', '菖蒲', '黄菖蒲', '水葱', '再力花', '梭鱼草', ] 13 }, 14 '动物': 15 { 16 '两栖动物': 17 ['山龟', '山鳖', '石蛙', '娃娃鱼', '蟾蜍', '龟', '鳄鱼', '蜥蜴', '蛇'], 18 '禽类': 19 ['雏鸡', '原鸡', '长鸣鸡', '昌国鸡', '斗鸡', '长尾鸡', '乌骨鸡'], 20 '哺乳类动物': 21 ['虎', '狼', '鼠', '鹿', '貂', '猴', '貘', '树懒', '斑马', '狗'] 22 } 23 } 24 li = [] 25 go=True 26 while go: 27 for i, v in enumerate(dic, 1): 28 print(i, v) 29 li.append(v) 30 u_c = input('>>>') 31 u_c = int(u_c) 32 li1 = [] 33 while go: 34 for i, v in enumerate(dic[li[u_c - 1]], 1): 35 print(i, v) 36 li1.append(v) 37 u_c1 = input('>>>>') 38 if u_c1.isdecimal(): 39 u_c1 = int(u_c1) 40 elif u_c1.isalpha(): 41 u_c1=u_c1.lower() 42 if u_c1=='b': 43 li.clear() #del li[:] 44 break 45 elif u_c1=='q': 46 go =False 47 break 48 # else: 49 # pass #没有else语法上是可以的,前提是你知道这样并没有什么逻辑上的遗漏。 50 while go: 51 for i in dic[li[u_c - 1]][li1[u_c1 - 1]]: 52 print(i) 53 u_c2=input('>>>>>') 54 u_c2=u_c2.lower() 55 if u_c2=='b': 56 li1.clear() #del li1[:] 57 break 58 elif u_c2=='q': 59 go =False 60 break
输出
C:\Python3.7.0\python3.exe F:/PycharmProjects/python_s3/day13/jichuceshi.py
1 植物
2 动物
>>>1
1 草本植物
2 木本植物
3 水生植物
>>>>b
1 植物
2 动物
>>>2
1 两栖动物
2 禽类
3 哺乳类动物
>>>>2
雏鸡
原鸡
长鸣鸡
昌国鸡
斗鸡
长尾鸡
乌骨鸡
>>>>>b
1 两栖动物
2 禽类
3 哺乳类动物
>>>>3
虎
狼
鼠
鹿
貂
猴
貘
树懒
斑马
狗
>>>>>q
Process finished with exit code 0
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #!/usr/bin/env python 4 # -*- coding:utf-8 -*- 5 # 增添功能。 6 dic = { 7 '植物': 8 { 9 '草本植物': 10 ['牵牛花', '瓜叶菊', '葫芦', '翠菊', '冬小麦', '甜菜'], 11 '木本植物': 12 ['乔木', '灌木', '半灌木', '如松', '杉', '樟'], 13 '水生植物': 14 ['荷花', '千屈菜', '菖蒲', '黄菖蒲', '水葱', '再力花', '梭鱼草', ] 15 }, 16 '动物': 17 { 18 '两栖动物': 19 ['山龟', '山鳖', '石蛙', '娃娃鱼', '蟾蜍', '龟', '鳄鱼', '蜥蜴', '蛇'], 20 '禽类': 21 ['雏鸡', '原鸡', '长鸣鸡', '昌国鸡', '斗鸡', '长尾鸡', '乌骨鸡'], 22 '哺乳类动物': 23 ['虎', '狼', '鼠', '鹿', '貂', '猴', '貘', '树懒', '斑马', '狗'] 24 } 25 } 26 li = [] 27 go = True 28 while go: 29 for i, v in enumerate(dic, 1): 30 print(i, v) 31 li.append(v) 32 u_c = input('>>>') 33 if u_c.isdigit(): 34 u_c = int(u_c) 35 li1 = [] 36 while go: 37 for i, v in enumerate(dic[li[u_c - 1]], 1): 38 print(i, v) 39 li1.append(v) 40 u_c1 = int(input('>>>>')) 41 while go: 42 for i in dic[li[u_c - 1]][li1[u_c1 - 1]]: 43 print(i) 44 u_c2 = input('>>>>>') 45 u_c2 = u_c2.lower() 46 if u_c2 == 'b': 47 li1.clear() # del li1[:] 48 break 49 elif u_c2 == 'q': 50 go = False 51 break 52 elif u_c.isalpha(): 53 u_c=u_c.lower() 54 if u_c=='i': 55 lx=input('类型:') 56 if dic.get(lx,1)==1: 57 dic[lx]={} 58 zl=input('种类:') 59 if dic[lx].get(zl,1)==1: 60 dic[lx][zl]=[] 61 while True: 62 mc=input('名称:') 63 if mc == 'q': 64 li.clear() 65 break 66 if mc in dic[lx][zl]: 67 print('已经存在!') 68 else: 69 dic[lx][zl].append(mc)
输出
C:\Python3.7.0\python3.exe F:/PycharmProjects/python_s3/day13/jccs2.py
1 植物
2 动物
>>>i
类型:怪物
种类:小精灵
名称:皮卡丘
名称:妙蛙种子
名称:小火龙
名称:q
1 植物
2 动物
3 怪物
>>>3
1 小精灵
>>>>1
皮卡丘
妙蛙种子
小火龙
>>>>>
1 #!!最棒的模板!! 2 #!/usr/bin/env python 3 # -*- coding:utf-8 -*- 4 db = { 5 '植物': 6 { 7 '草本植物': 8 {'牵牛花':{}, '瓜叶菊':{}, '葫芦':{}, '翠菊':{}, '冬小麦':{}, '甜菜':{}}, 9 '木本植物': 10 {'乔木':{}, '灌木':{}, '半灌木':{}, '如松':{}, '杉':{}, '樟':{}}, 11 '水生植物': 12 {'荷花':{}, '千屈菜':{}, '菖蒲':{}, '黄菖蒲':{}, '水葱':{}, '再力花':{}, '梭鱼草':{}, } 13 }, 14 '动物': 15 { 16 '两栖动物': 17 {'山龟':{}, '山鳖':{}, '石蛙':{}, '娃娃鱼':{}, '蟾蜍':{}, '龟':{}, '鳄鱼':{}, '蜥蜴':{}, '蛇':{}}, 18 '禽类': 19 {'雏鸡':{}, '原鸡':{}, '长鸣鸡':{}, '昌国鸡':{}, '斗鸡':{}, '长尾鸡':{}, '乌骨鸡':{}}, 20 '哺乳类动物': 21 {'虎':{}, '狼':{}, '鼠':{}, '鹿':{}, '貂':{}, '猴':{}, '貘':{}, '树懒':{}, '斑马':{}, '狗':{}} 22 } 23 } 24 path = [] 25 while True: 26 temp = db 27 for item in path: 28 temp = temp[item] 29 print('当前节点的所有子节点:', list(temp.keys())) 30 choice = input('1:添加节点;2:查看节点(Q退出/返回上一级B)\n>>>') 31 if choice == '1': 32 k = input('请输入要添加的子节点名称:') 33 if k in temp: 34 print('节点已经存在') 35 else: 36 temp[k] = {} 37 elif choice == '2': 38 k = input('请输入要查看的子节点:') 39 if k in temp: 40 path.append((k)) 41 else: 42 print('子节点名称错误') 43 elif choice.lower() == 'b': 44 if path: 45 path.pop() 46 elif choice.lower() == 'q': 47 break 48 else: 49 print('输入不合法')
输出
C:\Python3.7.0\python3.exe F:/PycharmProjects/python_s3/day13/jccs3.py
当前节点的所有子节点: ['植物', '动物']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>2
请输入要查看的子节点:动物
当前节点的所有子节点: ['两栖动物', '禽类', '哺乳类动物']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>2
请输入要查看的子节点:禽类
当前节点的所有子节点: ['雏鸡', '原鸡', '长鸣鸡', '昌国鸡', '斗鸡', '长尾鸡', '乌骨鸡']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>2
请输入要查看的子节点:雏鸡
当前节点的所有子节点: []
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>1
请输入要添加的子节点名称:黄雏鸡
当前节点的所有子节点: ['黄雏鸡']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>B
当前节点的所有子节点: ['雏鸡', '原鸡', '长鸣鸡', '昌国鸡', '斗鸡', '长尾鸡', '乌骨鸡']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>2
请输入要查看的子节点:雏鸡
当前节点的所有子节点: ['黄雏鸡']
1:添加节点;2:查看节点(Q退出/返回上一级B)
>>>