异常处理和三级菜单练习

# 异常处理
# 程序一旦报错就会在错误的地方停下来
# 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
原文地址:https://www.cnblogs.com/mu-tang/p/14109307.html