python笔记(模块导入 异常处理 三级菜单)

一、模块导入
1.当导入一个模块时先从sys.modules查看导入了哪些模块
2.写代码时模块的导入顺序规则:
(1).内置模块
(2).扩展模块
(3).自己定义模块
3.若使用了import */frrom x import * all = [xxx,xx,x]可以指定列表里的方法可使用
4.name:在模块中有一个变量__name__,当我们直接执行这个模块的时候,name == ‘main’,当我们在其他文件导入执行模块__name_== 模块名

二、异常处理
1.语法错误
2.逻辑错误

(1)Exception:万能异常
(2)处理多个异常
except error1:
except error2:

(3)异常处理形式
try:
‘xxxxxxxxxxxx’
except xxxxerror:
‘xxxxxxxxxxxxx’
else:
‘xxxxxxxxxxxxxxx’
finally:
‘xxxxxxxxxxxxxx’ (不管有没有错都执行)

(4)错误起名
try:
a = int(input())
c = 1/a
print©
except ZeroDivisionError as q: #给错误起个名
print(‘xxxxxxxxx’,q)

3.三级菜单

mune = {
    '三班':{
        '学委':{
            '1':
                {1,2,3},
            '2':
                {4,5,6}
        },
        '班长':{
            'a':
                {7:{}, 8:{}, 9:{}},
            'b':
                {10:{}, 11:{}, 12:{}}
        }
    },
    '四班':{
        '学委': {
            '3':
                {13:{}, 14:{}, 15:{}},
            '4':
                {16:{}, 17:{}, 18:{}}
        },
        '班长': {
            'c':
                {19:{}, 20:{}, 21:{}},
            'd':
                {22:{}, 23:{}, 24:{}}
        }
    },
    '五班':{
        '学委': {
            '5':
                {25:{}, 26:{}, 27:{}},
            '6':
                {28:{}, 29:{}, 30:{}}
        },
        '班长': {
            'e':
                {31:{}, 32:{}, 33:{}},
            'f':
                {34:{}, 35:{}, 36:{}}
        }
    }
}

#三级菜单(用堆栈方式实现)
l = [mune]
while l:
    for key in l[-1]:
        print(key)
    k = input('>>').strip()
    if k in l[-1] and l[-1][k]:
        l.append(l[-1][k])
    elif k == 'b':
        l.pop()
    elif k == 'q':
        break
    else:continue

#递归实现
def digui(dic):
    while True:
        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 = digui(dic[key])
            if ret == 'q':return 'q'
digui(mune)

猜你喜欢

转载自blog.csdn.net/qq_41433183/article/details/84105511
今日推荐