一、模块导入
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)