python学习笔记
来源:互联网 发布:ps3软件下载 编辑:程序博客网 时间:2024/06/05 07:22
python中try、except、finally、return、continue的执行顺序
return
函数中常见,运行该语句则直接返回值
例如:
def a(b): if b>3: retun print('dfds')in-a(5)out-nonein-a(2)out-dfda
continue—–执行到该语句,跳转到while语句重新开始循环,不执行continue下面while内的语句
else_________当不满足while语句循环条件时,执行else下面的语句。相当于if—-else;
finally________无论如何循环,都会执行finally语句
try | | except else | | finally
while True:
try: xxxxxexpect: xxxxxelse: xxxxx
这里expect与else连用,expect是指如果出现错误则XXXX,else是指如果不出现错误则XXXX。
加入return语句后的变化,
def test1(): try: print('to do stuff') raise Exception('hehe') print('to return in try') return 'try' except Exception: print('process except') print('to return in except') return 'except' finally: print('to return in finally') return 'finally'test1Return = test1()print('test1Return : ' + test1Return)输出:to do stuffprocess exceptto return in exceptto return in finallytest1Return : finally
解析:
try语句中列举异常,跳转到except语句中,except语句遇到return语句,则中断return语句,保留return返回值。继续执行finally语句,finally语句中不影响return返回值。如果在finally语句中由return则执行该return,否则,返回原return语句。
def test3(): i = 0 try: i += 1 print('i in try : %s'%i) raise Exception('hehe') except Exception: i += 1 print('i in except : %s'%i) return i finally: i += 1 print ('i in finally : %s'%i )print('test3Return : %s'% test3())输出:i in try : 1i in except : 2i in finally : 3test3Return : 2
解析:
在except和try中遇到return时,会锁定return的值,然后跳转到finally中,如果finally中没有return语句,则finally执行完毕之后仍返回原return点,将之前锁定的值返回(即finally中的动作不影响返回值),如果finally中有return语句,则执行finally中的return语句
break——–跳出本层循环
文件操作
open(路径,打开方式)返回一个类文件对象,该对象支持iter方法,属于可迭代对象。
图片视频属于二进制文件,使用‘rb’模式阅读
python 2to3 工具使用
cd到2to3.py文件夹
-w
文件路径
LEGB变量作用域原则
local—函数内局部变量
encloseing function locals—-外部嵌套函数的名称空间
global(module):函数定义所在模块的名称空间
Builtin(python):python内置模块的名称空间
闭包
在Python中,所谓的闭包是一个包含有环境变量取值的函数对象。环境变量取值被保存在函数对象的closure属性中。
闭包在于分步赋值,将复杂函数分解。
对象属性
python中一切皆对象,只要是对象就有dict方法,该方法返回对象的属性,dict为一个词典,键为属性名,对应的值为属性本身。
object.dict[N]相当于object.(N.value)
property函数
静态方法与类方法都是类被创建时调用,静态方法是没有参数的类方法,也可以叫做类属性;而类方法的参数是类,是有参数的类方法。
类方法
object.getattr(self,name) 在访问对象访问类中不存在的成员时会自动调用;
object.setattr(self,name,value)方法用于在初始化对象成员的时候调用,即在设置dict的item时就会调用setattr方法。
Property函数
对于对象的属性来讲,涉及到的操作主要有 获取、更改、删除 三种操作。
Property函数作用:将类中的对象方法转化为对象属性。调用对象方法时要加(),调用对象属性时不用加()。
将 获取、更改、删除的属性操作方法合并到一个属性中去。
property()最多可以加载四个参数。前三个参数为函数,分别用于处理查询特性、修改特性、删除特性。最后一个参数为特性的文档,可以为一个字符串,起说明作用。
@Property 修饰器(object.getter)
@object.setter
@object.deleter
装饰器
以函数为参数的函数。
闭包一次——无参数装饰器
闭包两次——含有参数的装饰器
魔法方法
魔法方法影响了PYTHON的语法,魔法方法更为低层。
object.xxxx()
魔法方法都是对象的方法。很多内置的函数都调用了魔法方法。
例如:
int()函数调用了int()方法;
列表中的[]调用了getitem()方法;
+ 调用了add()方法。
任何一个有call()特殊方法的对象都被当作是函数
生成器yield、send()、next()
yield 相当于return,是生成器标志。语句运行到这里结束,等待下一次调用(next或者send).
yield 返回值与yield 表达式的值是两个意思。
例如:yield 3 是指yield 返回3,而a=yield 3,是将yield =3 这个表达式的值付给a,表达式的值可以由send赋值。
send函数的本质:给yield表达式赋值,返回yield的返回值。
next()给yield表达式赋值为None。
send()使用时,要先用send(None)或者next()进行yield 表达式的初始化,然后在进行更改表达式的值。也就是说,send函数只能改变第二个yield表达式的值。
send()实现 的是 使生成器 不仅可以根据调用次数来实现生成数据,更可以通过输入不同数据(来给yield表达式赋值的方式)来实现生成不同数据。
send()方法是先给yield 表达式赋值,在进行的迭代。所以需要先给yield表达式赋值None,在进行改变
next()是函数,参数是可迭代对象。
生成器函数调用时不会运行函数内代码,只有用next方法调用时,才会运行函数。
eg:
def aaa():#正常函数
print(‘ashdfj’)
in-b=aaa()
out-ashdfj
def bbb():#生成器函数
print(‘aaa’)
yield 5
in-b=bbb()
out-None
表达式与语句是有区别的。表达式就是某些事情,而语句则是做某些事情。
例如:
a=5(赋值语句)
a(调用函数表达式)
交互式解释器总是把所有表达式的值打印出来。
exec(str)——-作用是将字符串转化为PYTHON语句并执行
eval(语句)———作用是求表达式中的值
定义函数时,第一行注释也称为文档化字符串。
方法:定义在类内部,拥有self参数。调用方式:object.方法(*arg,**args)
函数:定义在类外部,无self参数。
对象:对象是属性和方法的集合
多态:对象与方法之间是多对一的关系。
保护类实例对象属性私有
检查继承的方法:
检查类与类之间父子关系 —– issubclass(类1,类2)
打印基类——————object.base
判断实例与类之间的关系———isinstance(实例,类)
文件运行时,name等于main;文件被导入时,name等于文件名称。
Python引入了一个变量name,当文件是被调用时,name的值为模块名,当文件被执行时,name为’main‘。
main.py python中有这个模块的功能未知
编码与解码
字符与字节
unicode 是计算机内存能够处理的东西
utf-8用于传输储存的中间编码。
内存——编码encode(unicode》》》UTF-8)——传输(UTF-8)——解码decode(UTF-8>>>unicode)——内存——编码储存(UTF-8)。
python3中的字符串默认为unicode,所以不能解码。
- 【python】:python学习笔记
- Python学习笔记-Python起步
- Python学习笔记-Python基础
- Python学习笔记-Python对象
- Python基本概念--Python学习笔记
- Python学习笔记:Python函数
- python学习笔记-python安装
- Python学习笔记--Python基础
- 【Python】python基础学习笔记
- python学习笔记3
- Python学习笔记
- Boost.Python学习笔记
- python学习笔记1
- python学习笔记2
- python学习笔记(2)
- Python学习笔记 Module
- Python学习笔记.
- python学习笔记(1)
- ogg各场景维护
- 关系模型
- 小明系列问题——小明序列
- Duplicate AssemblyVersion Attribute
- gdb安装、vim配置
- python学习笔记
- H
- Nth Digit
- deleteRowsAtIndexPaths崩溃
- Ubuntu 升级系统
- 自顶向下分析一个简单的语音识别系统(七)
- android 本地化[语言和语言区域] 二
- Win10开启IIS
- Java NIO系列教程(二) Channel