作业三级目录
Posted 简明现代魔法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业三级目录相关的知识,希望对你有一定的参考价值。
实现需求:
老师代码:
l_city ={
\'北京1\':
{\'昌平1\':
{\'沙河1\':[\'老男孩\',\'阿泰包子\'],
\'天通苑1\':[\'臭豆腐\',\'烤肉串\']
},
\'朝阳1\':
{\'朝阳门1\':[\'吉事果\',\'老酸奶\'],
\'红领巾桥1\':[\'麻辣烫\',\'旋风土豆\']
},
\'海淀1\':
{\'颐和园1\':[\'景区\',\'还是景区\'],
\'玉泉山1\':[\'大树\',\'还是大树\']
}
}
,
\'北京2\':
{\'昌平2\':
{\'沙河2\': [\'老男孩\', \'阿泰包子\'],
\'天通苑2\': [\'臭豆腐\', \'烤肉串\']
},
\'朝阳2\':
{\'朝阳门2\': [\'吉事果\', \'老酸奶\'],
\'红领巾桥2\': [\'麻辣烫\', \'旋风土豆\']
},
\'海淀2\':
{\'颐和园2\': [\'景区\', \'还是景区\'],
\'玉泉山2\': [\'大树\', \'还是大树\']
}
}
,
\'北京3\':
{\'昌平3\':
{\'沙河3\': [\'老男孩\', \'阿泰包子\'],
\'天通苑3\': [\'臭豆腐\', \'烤肉串\']
},
\'朝阳3\':
{\'朝阳门3\': [\'吉事果\', \'老酸奶\'],
\'红领巾桥3\': [\'麻辣烫\', \'旋风土豆\']
},
\'海淀3\':
{\'颐和园3\': [\'景区\', \'还是景区\'],
\'玉泉山3\': [\'大树\', \'还是大树\']
}
}
}
以上是字典部分
下面才是代码部分
ways = []
def new_dic(zidian):
# print(y[0].keys()) #用于调试
print(\'you can chose:\',zidian.keys())
key = input(">>:").strip()
try: #错误输入就退出
if key in zidian: #如果传入的key值符合规范
sub_zidian = zidian.get(key) #取得key所包含的字典,并赋值给新的字典
if type(sub_zidian) is dict:
ways.append(zidian) # 保存初始路径
return new_dic(sub_zidian) #返回字典函数进行下一轮
else:
print(sub_zidian)
print(\'已经到底了,后面选项无法选择\') #字典底层元素为列表,无法继续选择,退出
elif key == \'b\': #如果传入的值是b,返回上层
# print (len(y),y[-1].keys()keys,y[-2].keys()) #用于调试
if len(ways)>1:
print(\'====>\')
x=ways.pop()
return new_dic(x) #y路径库判断,根据路径库当中路径数量,判断是否到顶层
#如果没有到顶层,并且y中有两个或以上元素,
# 将x赋值为倒数第二个路径(前一级列表),删除最后一个路径,返回
elif len(ways)==1: #如果到顶层,提供退出提示
print(\'顶层目录,按“q”退出\')
return new_dic(ways[0])
elif key == \'q\':exit()
else:
print(\'wrong input!\')
return new_dic(zidian)
except AttributeError:
print(\'ending\')
new_dic(l_city)
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
以上是关于作业三级目录的主要内容,如果未能解决你的问题,请参考以下文章
操作系统| 处理机调度(各种作业调度算法银行家算法三级调度死锁产生原因和必要条件处理死锁的方法死锁定理的作用实时调度算法)