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)
>>>