P13列表
1.列表的一些常用操作符
比较操作符
逻辑操作符
连接操作符
重复操作符
成员关系操作符
2.列表的小伙伴们(常使用的内置函数)
count()
index()
reverse()
sort():用指定的方法对列表进行排序,默认从小到大;
3.列表的拷贝
List7 = list6[ : ]
List8 = list6
P14元组
和列表是近亲关系,在实际使用中是非常相似的。元组中的元素不能改变。
创建和访问一个元组
例子:
元组的拷贝
例:
元组的关键是逗号,不是小括号;
创建空元组
更新和删除一个元组
更新一个元组:
删除一个元组:
6. 元组相关的操作符
P15字符串
字符串的切片
字符串同元组的性质一样,组内元素不能修改;
P16格式化
0 显示的数字前面填充"0"而不是默认的空格
(var) 映射变量(通常用来处理字段类型的参数)
m.n m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
4. 字符串转义字符含义
符号 说明
\’ 单引号
\” 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符(TAB)
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\ 反斜杠
P17序列(列表、元组和字符串的统称)
括号内是参数,含参数的函数定义:
调用函数:
格式:函数名()
函数的返回
return
P19函数:参数
形参和实参
函数文档
关键字参数
默认参数
收集参数
P20函数与过程
1.
P21内嵌函数和闭包
global关键字
内嵌函数
闭包
Nonlocal
P22函数:lambda表达式
lambda表达式的作用
(1)Python写一些执行脚本时,使用lambda就可以省下定义函数过程,从而使得代码更加精简;
(2)对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,可以使用lambda从而不需要考虑的命名问题;
(3)简化代码的可读性
3.filter
P23函数:递归
1.
P24函数:递归
迭代:
递归:
P25函数:递归——汉诺塔
1.
P26字典:当索引不好用时
映射:两个元素集合之间,各元素之间的对应关系
创建和访问字典
字典的标志性符号:大括号;
改变字典键对应的值:
P27
fromkeys():
例子:
访问字典的方法
1.1 keys()
1.2 values()
1.3 items()
1.4 get()
成员资格操作符in和 not in
清空字典clear方法
copy方法:浅拷贝方法
pop
popitem
setdefault
update:
P28集合
创建一个集合
1.1直接用一堆元素用花括号括起来
1.2使用set()工厂函数
访问集合中的值
2.1使用for将集合中的值一个一个读取出来
2.2使用in或者not in来判断一个元素是否在集合中;
3.不可变集合 frozen
forzense
P29文件
打开文件
文件对象方法
P30任务
优化后:
P31文件系统
1.
模块是一个包含所有你定义的函数和变量的文件,其后缀名是时.py,模块可以被别的程序引入,以使用该模块中的函数等功能。
OS模块
os.path模块中关于路径常用的函数使用方法
使用方法:os.path.函数名
P32
P33
BaseException
±- SystemExit
±- KeyboardInterrupt
±- GeneratorExit
±- Exception
±- StopIteration
±- ArithmeticError
| ±- FloatingPointError
| ±- OverflowError
| ±- ZeroDivisionError
±- AssertionError
±- AttributeError
±- BufferError
±- EOFError
±- ImportError
±- LookupError
| ±- IndexError
| ±- KeyError
±- MemoryError
±- NameError
| ±- UnboundLocalError
±- OSError
| ±- BlockingIOError
| ±- ChildProcessError
| ±- ConnectionError
| | ±- BrokenPipeError
| | ±- ConnectionAbortedError
| | ±- ConnectionRefusedError
| | ±- ConnectionResetError
| ±- FileExistsError
| ±- FileNotFoundError
| ±- InterruptedError
| ±- IsADirectoryError
| ±- NotADirectoryError
| ±- PermissionError
| ±- ProcessLookupError
| ±- TimeoutError
±- ReferenceError
±- RuntimeError
| ±- NotImplementedError
±- SyntaxError
| ±- IndentationError
| ±- TabError
±- SystemError
±- TypeError
±- ValueError
| ±- UnicodeError
| ±- UnicodeDecodeError
| ±- UnicodeEncodeError
| ±- UnicodeTranslateError
±- Warning
±- DeprecationWarning
±- PendingDeprecationWarning
±- RuntimeWarning
±- SyntaxWarning
±- UserWarning
±- FutureWarning
±- ImportWarning
±- UnicodeWarning
±- BytesWarning
±- ResourceWarning
P34异常处理
Try-except语句
语法: try:
检测范围
except Exception[as reason]:
出现异常后的处理代码
Try-finally语句
语法: try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
finally
无论如何都会被执行的代码
raise语句
P35
P36图形用户界面 EasyGui
P37对象
P38
self:相当于C++的this指针
例子:
python的魔法方法
init(self):
例子:
公有和私有
默认对象的属性时共有的
Python采用name mangling(名字重整)来实现私有化:在python中定义私有变量只需要在变量名或函数名前加上”_”两个下划线,那么这个函数或变量就会变为私有;
P39类和对象:继承
P40类和对象:拾遗
2.绑定:python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定
P41和类与对象相关的BIF
P42魔法方法
P43魔法方法;算数运算1
P44魔法方法:算数运算2
魔法方法 含义
基本的魔法方法
new(cls[, …]) 1. new 是在一个对象实例化的时候所调用的第一个方法
2. 它的第一个参数是这个类,其他的参数是用来直接传递给 init 方法
3. new 决定是否要使用该 init 方法,因为 new 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 new 没有返回实例对象,则 init 不会被调用
4. new 主要是用于继承一个不可变的类型比如一个 tuple 或者 string
init(self[, …]) 构造器,当一个实例被创建的时候调用的初始化方法
del(self) 析构器,当一个实例被销毁的时候调用的方法
call(self[, args…]) 允许一个类的实例像函数一样被调用:x(a, b) 调用 x.call(a, b)
len(self) 定义当被 len() 调用时的行为
repr(self) 定义当被 repr() 调用时的行为
str(self) 定义当被 str() 调用时的行为
bytes(self) 定义当被 bytes() 调用时的行为
hash(self) 定义当被 hash() 调用时的行为
bool(self) 定义当被 bool() 调用时的行为,应该返回 True 或 False
format(self, format_spec) 定义当被 format() 调用时的行为
有关属性
getattr(self, name) 定义当用户试图获取一个不存在的属性时的行为
getattribute(self, name) 定义当该类的属性被访问时的行为
setattr(self, name, value) 定义当一个属性被设置时的行为
delattr(self, name) 定义当一个属性被删除时的行为
dir(self) 定义当 dir() 被调用时的行为
get(self, instance, owner) 定义当描述符的值被取得时的行为
set(self, instance, value) 定义当描述符的值被改变时的行为
delete(self, instance) 定义当描述符的值被删除时的行为
比较操作符
lt(self, other) 定义小于号的行为:x < y 调用 x.lt(y)
le(self, other) 定义小于等于号的行为:x <= y 调用 x.le(y)
eq(self, other) 定义等于号的行为:x == y 调用 x.eq(y)
ne(self, other) 定义不等号的行为:x != y 调用 x.ne(y)
gt(self, other) 定义大于号的行为:x > y 调用 x.gt(y)
ge(self, other) 定义大于等于号的行为:x >= y 调用 x.ge(y)
算数运算符
add(self, other) 定义加法的行为:+
sub(self, other) 定义减法的行为:-
mul(self, other) 定义乘法的行为:*
truediv(self, other) 定义真除法的行为:/
floordiv(self, other) 定义整数除法的行为://
mod(self, other) 定义取模算法的行为:%
divmod(self, other) 定义当被 divmod() 调用时的行为
pow(self, other[, modulo]) 定义当被 power() 调用或 ** 运算时的行为
lshift(self, other) 定义按位左移位的行为:<<
rshift(self, other) 定义按位右移位的行为:>>
and(self, other) 定义按位与操作的行为:&
xor(self, other) 定义按位异或操作的行为:^
or(self, other) 定义按位或操作的行为:|
反运算
radd(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rsub(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rmul(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rtruediv(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rfloordiv(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rmod(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rdivmod(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rpow(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rlshift(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rrshift(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rand(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
rxor(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
ror(self, other) (与上方相同,当左操作数不支持相应的操作时被调用)
增量赋值运算
iadd(self, other) 定义赋值加法的行为:+=
isub(self, other) 定义赋值减法的行为:-=
imul(self, other) 定义赋值乘法的行为:*=
itruediv(self, other) 定义赋值真除法的行为:/=
ifloordiv(self, other) 定义赋值整数除法的行为://=
imod(self, other) 定义赋值取模算法的行为:%=
ipow(self, other[, modulo]) 定义赋值幂运算的行为:**=
ilshift(self, other) 定义赋值按位左移位的行为:<<=
irshift(self, other) 定义赋值按位右移位的行为:>>=
iand(self, other) 定义赋值按位与操作的行为:&=
ixor(self, other) 定义赋值按位异或操作的行为:^=
ior(self, other) 定义赋值按位或操作的行为:|=
一元操作符
pos(self) 定义正号的行为:+x
neg(self) 定义负号的行为:-x
abs(self) 定义当被 abs() 调用时的行为
invert(self) 定义按位求反的行为:~x
类型转换
complex(self) 定义当被 complex() 调用时的行为(需要返回恰当的值)
int(self) 定义当被 int() 调用时的行为(需要返回恰当的值)
float(self) 定义当被 float() 调用时的行为(需要返回恰当的值)
round(self[, n]) 定义当被 round() 调用时的行为(需要返回恰当的值)
index(self) 1. 当对象是被应用在切片表达式中时,实现整形强制转换
2. 如果你定义了一个可能在切片时用到的定制的数值型,你应该定义 index
3. 如果 index 被定义,则 int 也需要被定义,且返回相同的值
上下文管理(with 语句)
enter(self) 1. 定义当使用 with 语句时的初始化行为
2. enter 的返回值被 with 语句的目标或者 as 后的名字绑定
exit(self, exc_type, exc_value, traceback) 1. 定义当一个代码块被执行或者终止后上下文管理器应该做什么
2. 一般被用来处理异常,清除工作或者做一些代码块执行完毕之后的日常工作
容器类型
len(self) 定义当被 len() 调用时的行为(返回容器中元素的个数)
getitem(self, key) 定义获取容器中指定元素的行为,相当于 self[key]
setitem(self, key, value) 定义设置容器中指定元素的行为,相当于 self[key] = value
delitem(self, key) 定义删除容器中指定元素的行为,相当于 del self[key]
iter(self) 定义当迭代容器中的元素的行为
reversed(self) 定义当被 reversed() 调用时的行为
contains(self, item) 定义当使用成员测试运算符(in 或 not in)时的行为
P45魔法方法:简单定制
P46魔法方法:属性访问
1.getattr(self,name):定义当用户试图获取一个不存在的属性时的行为;
2. getattribute(self,name):定义当该类的属性被访问时的行为
3.setattr(self,name,value):定义当一个属性被设置时的行为
4.delattr(self,name):定义当一个属性被删除时的行为
P47魔法方法:描述符
P48
P49
P50
P51模块(模块就是程序)