2020.2.7
pickle模块
import pickle
list1 = [123,3.14,'yyqx',['list2']]
pickle_file = open('list1.pkl','wb')
pickle,dump(list1,pickle_file)
pickle_file.colse()
pickle_file = open('list1.pkl','rb')
list2 = pickle.load(pickle_file)
print(list2)
输出:
[123,3.14,'yyqx',['list2']]
异常处理
AssertionError:断言语句(assert)失败
AttributeError:尝试访问未知的对象属性
list.clear()
list.yyqx()#这行存在AttributeError
IndexError:索引超出序列的范围
list1 = [0,1,2]
list1[3]#这行存在IndexError
KeyError:字典中查找一个不存在的关键字
dict1 = {'one':1}
dict1['four']#这行存在KeyError
NameError:尝试访问一个不存在的变量
OSError:操作系统产生的异常(例如打开一个不存在的文件)
OverflowError:数值运算超出最大限制
SyntaxError:Python的语法错误
TypeError:不同类型间的错误操作
ZeroDivision:除数为零
IndentationError:缩进错误
FileNotFoundError:找不到文件
检测异常的语句
1、 try-except语句
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
try:
f = open('yyqx.jpg')
print(f.read())
f.close()
except OSError as reason :
print('出错原因:' + str(reason))
输出:
出错原因:[Error2]No such file or directory:'yyqx.jpg'
2、 try-finally语句
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
finally:
无论如何都会被执行的代码
try:
f = open('yyqx.txt','w')
print(f.write('love you'))
sum = 1 + '1'
except TypeError as reason :
print('出错了')
finally:
f.close()
输出:
出错了#且文件被写入了love you并保存
3、 raise语句:自己引发一个异常
else语句
用法一:
def showMaxFactor(num):
count = num // 2
while count > 1:
if num % count == 0:
print('%d的最大约数为%d'%(num,count))
break
count -= 1
else:
print('%d是素数' % num)
num = int(input('请输入一个数:'))
showMaxFactor(num)
输出:
请输入一个数:50
50的最大约数为25
用法二:
try:
print(int('123'))
except ValueError as reason:
print('出错啦:' + str(reason))
else:
print('没有任何异常')
输出:
123
没有任何异常
with语句
try:
f = open('data.txt','w')
for each_line in f:
print(each_line)
except OSError as reason:
print('出错啦' + str(reason))
finally:
f.close()
或者
try:
with open('data.txt','w') as f:
for each_line in f:
print(each_line)
except OSError as reason:
print('出错啦' + str(reason))
输出:
出错啦not readable
图形用户界面入门:EasyGui(教学文档:http://bbs.fishc.com/thread-46069-1-1.html)**
1、创建一个界面框
import easygui
easygui.msgbox('hey boy~')
或者
from easygui import *
magbox('hey boy~')
或者
import easygui as g
g.msgbox('hey boy~')
例一:
import easygui as g
import sys
while 1:
g.msgbox('HEY WELCOME TO THIS GAME')
msg = 'what doyou learn from this game'
title = 'communicate'
choices = ['fall in love','write essey','xxoo']
choices = g.choicebox(msg,title,choices)
g.msgbox('what is your choice?' + str(choice),'result')
msg = 'again?'
title = 'please make your choice'
if g.ccbox(msg,title):
pass
else:
sys.exit(0)
(建议不要在IDLE上运行EasyGui)