# 异常处理 # 程序一旦报错就会在错误的地方停下来 # while 1: # try: # ret = int(input('number>>>')) # print(ret*'*') # break # except ValueError: # print('您的输入有误,请输入数字') # try: # ret = int(input('number>>>')) # print(ret*'*') # except Exception : #万能异常 不会报错 没有异常分析 # print('你错了') # try: # ret = int(input('number>>>')) # print(ret*'*') # except Exception as error: #万能异常 # print('你错了',error) #error打印出异常位置和原因 # else: #try里没有错误执行else # print('无异常时打印') # # finally: #无论有没有异常 都执行finally # print('有无异常都打印') # #finally和return相遇时 也会执行finally #finally常常用于函数中的异常处理 不管异常不异常 做收尾工作 比如关闭文件
三级菜单
# menu = { # '北京':{ # '昌平':{ # '我没去过昌平,不知道地方':[] # }, # '五环':{ # '八达岭':{ # '上长城':[], # '下长城':[] # }, # '故宫':[] # } # }, # '上海':{ # '东方明珠':{ # '塔下拍照':{ # 'pose':{ # 'V':[] # }, # '看看就回家':[] # }, # '上去玩':{ # '太危险了':[] # } # }, # '外滩':[] # }, # '重庆':[] # } # def threeLM(dic): # while 1: # for k in dic:print(k) # key = input('你想去哪:').strip() # if key =='b'or key =='q': # return key # elif key in dic.keys() and dic[key]: # ret = threeLM(dic[key]) # if key == 'q':return 'q' # elif key not in dic.keys() or not dic[key]: # continue # # threeLM(menu) ###########输入b返回上一层 输入q退出########### ######堆栈实现###### # l =[menu] # while l: # for i in l[-1]:print(i) # k = input('你想去哪玩:') # if k in l[-1].keys() and l[-1][k]: # l.append(l[-1][k]) # elif k == 'b': # l.pop() # elif k =='q': # break # else:continue