python学习笔记_20180310_集合下_文件操作_异常_with

集合dict{}  下
创建集合
两种方法:
1、直接把一大堆元素用大括号({})括起来
2、用set()
>>>set1 = {'abc','bdd'}
>>>set2 = set(['fff','fs'])


访问集合
>>>set1 = {1,2,4,5,6,7,8}
>>>for each in set1:
print(each,end='')




1 2 4 5 6 7 8
判断一个元素是否在集合中已经存在
>>>0 in set1
False
>>>8 in set1
True


使用add() 方法 增加元素
remove() 方法 删除元素






不可变集合
有些时候希望中的数据具有稳定性,也就是说,想元祖一样不能随意地增加或删除集合中的元素。那么我们可以定义不可变集合,这里使用函数frozenset()。
>>>set1 = frozenset({1,3,5,7})
>>>set1.add(9) 
这里就会报错了。。。 被冻结了。




文件
open函数打开
打开模式:
r:制度,默认
w:写入,会覆盖已经存在的文件
x:如果文件已经存在,使用此模式打开将引发异常
a:写入模式,如果文件已经存在,则在末尾追加写入
b:二进制模式打开文件
t:文本模式打开
+:可读写模式(可添加到其他模式中使用)
U:通用换行符支持


文件对象的方法
close():  关闭文件
read(size == -1): 从文件读取size个字符,当未给size或给负值的时候 ,读取剩余的所有字符,然后作为字符串返回
readline():从文件中读取一整行字符串
write(str):将字符串str写入文件
writelines(seq):向文件写入字符串序列seq,seq应该是一个返回字符串 的可迭代对象
seek(offset,from):向文件中移动文件指针,从from(0代表文件起始位置 ,1代表当前位置,2代表文件的末尾)偏移offset个字节
tell():返回当前在文件中的位置




异常处理
try-except
格式:
try:
检测范围
except Execption[as reason]
出现异常(Execption)后的处理代码




例子:
f= open('我为什么是一个文档.txt')
print(f.read())
f.close()


以上代码,'我为什么是一个文档.txt'这个文档不存在的时候,Python就会报错说明文档不存在:


现在这样用户体验不好,因此可以这样修改:
try:
f= open('我为什是一个文档.txt')
print(f.read())
f.close()
except OSError:
print("文件打开的过程中出现错误啦")






try-finally语句
如果"我是一个不存在的文档"确实存在,open()函数正常返回文件对象,单异常缺发生在成功打开文件后的sum = 1 + '1'语句上。此时python将直接跳出except语句,也就是说,文件打开了,但没有执行关闭文件的命令。


案例1
try:
f = open("我是一个不存在的文档.txt")
print(f.read())
sum = 1 + '1'
        f.close()
except:
print("出错啦")




为了实现这种"就是出现异常,但也不得不执行的收尾工作(比如在程序崩溃前保存用户文档)",引入finally来扩展try:


实现的代码:
try:
f = open("我是一个不存在的文档.txt")
print(f.read())
sum = 1 + '1'        
except:
print("出错啦")
finally:
f.close()






tyr: else  语句
例子:
try:
 int('abc')
except ValueError as reason:
print("出错了" + str(reason))
else:
print("没有任何异常")




简介的with语句
有的感觉打开文件又要关闭文件,还要关注异常处理的烦人,所以Python提供了一个with语句,利用这个语句抽象出文件对象中频繁使用try/except/finally相关的细节。对文件操作使用with语句,大大减少代码。不用担心文件的关闭会自动帮你关闭。


案例1:
try:
f =open("data.txt","w")
for each_line in f:
print(each_line)
except OSError as reasion:
print("出错啦" + str(reasion))
finally:
f.close()


使用with案例
try:
with open('data.txt','w')
foreach each_line in f:
print(each_line)
except OSError as reasion:
print("出错啦" + str(reasion))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值