Python教程

python进阶笔记

本文主要是介绍python进阶笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.文件

(1)文件也是一个对象

(2)打开文件

f = open(文件名,模式),文件名可以是相对路径或者绝对路径

模式有:"r" 只读、“w” 写入、“a” 追加,“r+/w+”读写

使用 'r' 或 'U' 模式打开的文件必须是已经存在的。 使用 'w' 模式打开的文件若存在则首先清空, 然后(重新)创建。 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将追加到文件的末尾。 即使你 seek 到了其它的地方。 如果文件不存在, 将被自动创建, 类似以 'w'模式打开文件。

 

 (3)属性

 

 (4)关闭

 

 (5)写入

write()方法可将任何字符串写入一个打开的文件。

write()方法不在字符串的结尾不添加换行符('\n'):

 

 主动调用close()写缓存同步到磁盘,或者写入数据量大于或等于写缓存,写缓存同步到磁盘

(6)读取

read(size)方法从一个打开的文件中读取一个字符串。size若不填则为尽量多的字符串,若填了则为结束位置。

readline()读取当前行,允许有参数

readlines()读取剩余行,返回一个字符串列表

 

 (7)文件放置

tell()方法告诉你文件内的当前位置;即下一次的读写会发生在文件开头这么多字节之后:

seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

 

 (8)重命名

Python的os模块提供了帮你执行文件处理操作的方法,必须先导入它,才可以调用。

os.rename(当前文件名,新的文件名

(9)删除文件

同样需要导入os模块,才可以调用。

os.remove(文件名)

2.错误和异常

(1)错误类型
OverflowError数值运算超出最大限制
ZeroDivisionError 除(或取模)零 (所有数据类型)
AttributeError对象没有这个属性
IOError 输入/输出操作失败
IndexError 序列中没有此索引(index)
NameError 未声明/初始化对象 (没有属性)
SyntaxError Python 语法错误
TypeError 对类型无效的操作
ValueError 传入无效的参数

(2)try-except处理异常

try-except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

 

 当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

 

 except若不带任何异常类型,即捕获所有发生的异常。但是不能捕获语法错误异常,如if a,因为是运行前错误而不是运行时错误

也可带多种类型except(Exception1[, Exception2[,...ExceptionN]]]):

错误类型后面跟着变量e,可以print错误提示

 

 (3)try-finally语句

语句是否发生异常都将执行最后的代码。将异常保留下来交给系统处理,本身不处理异常。

作用:为处理异常事件提供清理机制,用来关闭文件或者释放系统资源。

 

 可以使用except语句或者finally语句,但是两者不能同时使用。else语句也不能与finally语句同时使用。

(4)try-except-finally  

若try语句没有捕获异常,执行完try代码段后,执行finally

若try捕获异常,首先执行except处理异常,然后执行finally

(5)try-except-else-finally

若try语句没有捕获异常,执行完try代码段后,执行else代码段,最后执行finally

若try捕获异常,首先执行except处理错误,然后执行finally

(6)try-finally-except

当在try块中抛出一个异常,立即执行finally块代码。

finally块中的所有语句执行后,异常被再次提出,并执行except块代码。

(7)with语句

用来代替try-except-finally语句,使代码更加简洁

 

 context表达式返回是一个对象

var用来保存context返回对象,单个返回值或元组

with_suite使用var变量对context返回对象进行操作

 

 打开1.txt文件

f变量接收文件对象返回的对象

with中的代码执行完成后,关闭文件

程序使用了上下文管理器 (with...as...)。上下文管理器有隶属于它的程序块。当隶属的程序块执行结束的时候(也就是不再缩进),上下文管理器自动关闭了文件

运用情况:①文件操作 ②进城之间互斥操作:例如互斥锁  ③支持上下文的其他对象

(8)raise主动抛出异常

 

 (9)assert语句

断言语句:assert语句是用于检测表达式是否为真,如果为假,引发AssertionError错误

 

 (10)自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

自定义异常只能主动触发。

 

 3.模块和包

(1)概念介绍

#test.py  自身模块名test

import p1.util  引用p1包的模块util

print p1.util.f(2)  调用p1.util的函数f()

如何区分包和普通目录 包下面有个__inti__.py文件

(2)如果我们只希望导入用到的math模块的某几个函数,而不是所有函数,可以用下面的语句:

 

(3)可以给函数起个“别名”来避免冲突:as

 

 (4)如果导入的模块不存在,Python解释器会报 ImportError 错误

4.作用域

(1)函数作用域LEGB   L>E>G>B

L:local 函数内部作用域

E:enclosing 函数内部与内嵌函数之间,即闭包

G:global全局作用域

B:bulid-in 内置作用域 list,tuple之类

 

 

 


                    
这篇关于python进阶笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!