导图社区 Python知识导图
Python是一种跨平台的计算机程序设计语言。,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。下图梳理了Python的入门、进阶、实战、高阶等,赶快学习吧!
编辑于2019-01-21 06:37:39Python学习
入门
相关了解
环境配置
语法规则
基础规则
添加注释
帮助
help(print) #显示print函数帮助信息
变量,语句,代码块
文件结构
代码
模块(module)
分类
自定义模块
第三方模块
内置模块
使用
import xx
import ..xx(导入上一级module)
import baoName.moduleName
sys.path.append(xx)
只对本次程序有效,长改设环境变量
属性
__name__
__doc__(说明)
__package__
__loader_(类名)
__spec__(简介)
常规写法
if __name__=='__main__':
导入方式
import as
from import
from import *
可能导致代码内同名函数/变量被覆盖
导入文件名带空格的module
a=__import__('s a')
包(package)
必须包含__init__文件
进阶
变量
变量规则
本质:对象
身份(id)
内存地址
类型(type)
值
定义
类型
numbers
类型
int
bool
关系运算符
and or not
位运算符
&
|
^异或
~取反
<<按位左移
>>
complex(复数)
float
算术运算符
+,-,*,/
%取模
** 幂pow()
//整除
abs()
int()/float()
divmod(x,y)
返回商和余数
赋值运算符
机制
直接将对象的内存指针赋值
比较运算符
==,>,<,<=
<>或!=,
is、is not
慎用is
==判断两个对象内容
is还会判断指针是否相等(即对象地址)
优先级
比较低于运算
缓存重用机制
string
描述
转义符
介绍
原字符串(raw string)
字符串前加r或R,不转义
相关函数
repr(str)
变非转义
eval(str)
变转义
扩展
str前加b 二进制
加u,变Unicode编码
屏幕I/O及格式化
占位符
%s
%r
%m.n
格式化
str.format()
建议,更省内存
键盘输入
input()
序列类型运算操作
连接
‘5’+‘a'
重复
’a‘*3
检索
s='hello',s[-1]=o
反检索
s.index('e')=1
切片
[start:end:step]
相关函数
len()
in:
max(): min(): cmp(str1,str2):
str.split()
char.join()
str.title()大写
list
li=[]
内置方法
list.append()
.extend()
a.extend(a)
.remove()
.sort
del list[i或切片]
.clear()
.pop()
不指定即弹出最后元素
list实现队列和栈
tuple
a=(100,'a',)
元组元素不能修改
子主题
sets
集合 myset={'hello',2}
进行成员关系测试和消除重复元素
set()
hello=set('hello')
内置函数
.add()
子主题
frozenset
值不可改变
dictionaries
字典
key:value
运算
帮助函数
dir(查询类/类型的所有属性
help()
浅copy与深copy
控制流
if语句
while
for
使用切片
for item in words[:]
内置函数range
range() 返回一个数字区间的所有数字 大于0的序列 range(6) 0-6
for i in range(5)
内置函数zip
同时遍历多个序列
内置函数enumrate
遍历一个序列容器
循环控制
break
continue
pass
函数
基本概念
def 定义
组成部分
组成
文档字符串
多行字符串,print(func.__doc__)
本质:对象
callable(func)检测可否被调用
内置函数
filter(func or None,sequence)
过滤型
reduce(func,sequence,(initial))
归并性任务
map(func,sequence[,sequence,....])
映射型任务
定义参数及调用函数
函数参数的定义方法与调用形式
列表方式:fun(参1,参2)
星号方式
带默认实参
通过元组或列表的解包,fun(*参数)
字典解包:fun(**参数)
函数调用检查参数
isinstance()
传值与传引用
匿名函数与可迭代函数
匿名函数介绍
lambda 参数1,参数2 :表达式
可迭代函数
与 filter,reduce,map混合使用,简洁高效
返回值
属于一个生成器对象,有__next_方法
其他函数
偏函数
partial(func,*args,**keywords)
递归函数
不建议
eval与exec函数
区别:
eval执行返回结果,exec执行完不返回结果
定义:eval/exec(expression,globals=None,locals=None)
expression:字符串,要执行语句
globals
expressions可用的全局命名空间中的函数
locals
与globals冲突时,以locals为准
内建模块__builtins__
使用经验
1.字符串内容是可执行代码
eval(repr(s))
生成器函数
与迭代器区别:只能迭代一次,空间/时间优先
迭代器所有内容都在内存里,用next函数依次往下遍历
生成器不会把内存放到内存,每次调用next,返回本次计算结果元素,用完即销毁
定义:用来创建生成器对象,用yield语句返回,生成器对象
子主题
工厂函数
普通工厂函数
闭合函数(closure)
装饰器(decorator)
变量作用域
LEGB原则
L:local
E:函数嵌套,上一层def的本地作用域
G:global
B:内置作用域,python
错误与异常
错误分类
语法错误
运行时错误
异常基本语法
try/except 捕捉异常对象
输出异常的详细信息
sys.exc_info函数
traceback对象显示
traceback.print_tb()
捕获与处理异常
创建异常
raise [Exception [,args,[,traceback]]]
异常的最终清理
finally
判定条件的正确性(断言)
assert
文本操作
文件基本操作
读写文件
open,返回一个文件对象
open(文件名,mode)
r
w
b
二进制
a 追加内容,不存在则重建
+,读写
read,write
close
文件对象的方法
f.read(size)
读取size个字节数据,然后作为字符串或bytes对象返回
f.readline()/f.readlines()
f.write(string)
f.tell()
返回文件对象当前所处位置。是从文件开头开始算起字符数
f.seek(offset,fromwhat)
0(文件头,默认),1(当前位置),2(文件尾)
使用with语句简化代码
with open('a.txt','wb+') as f:
实现字符串与二进制数的相互转化
字符串转二进制数
bytes(字符串,编码格式)
二进制转字符串
.decode()方法
将任意对象序列化
pickle模块
1.python对象转化成二进制(dumps)
dumps(obj,)
二进制对象转python对象
loads(data,)
python对象转二进制文件
dump(obj,file)
二进制对象文件转python对象
load(file,)
实战
高阶
类:面向对象编程
类的相关术语及实现
相关术语
实现
创建类
class ClassName
创建类属性
定义类属性
self.
类内置属性
__name__
__doc__
__module__
__base__
__dict__:该类的所有属性
类的动态属性
添加
实例化对象.后加属性名称
删除
del对象属性
限制类属性(__slots__)
实例化对象
初始化__init__
class中的self
直接调用类的成员函数
将成员函数定义在类外
第一个参数self保留
类方法与静态方法
类方法(@classmethod)
第一个参数必须是cls
静态方法(@staticmethod)
类变量与实例变量
类变量
类似静态数据,定义类时定义,所有实例共享
销毁实例化对象
__del__
类变量的私有化属性
public:default
private
实现:__(两个下划线开头的成员对象为私有化成员)
使用装饰器技术实现类的私有化(@properrty)
私有化get
私有化set
实现子类
继承
super函数
类相关的内置函数
判断实例:isinstance
判断子类:issubclass
判断类实例是否含有某个属性:hasattr
获得类实例中的某个属性:getattr
设置类实例中的某个属性setattr
重载运算符
可重载的运算符
_new__
创建类,在__init__之前创建对象
__iter__,__next__
迭代
__add__
+
__del__
析构函数
__or__
__repr,__str__
格式转换
__call__
函数调用
__init__
构造函数
__get/set/delitem__
索引运算
__len__
计算长度
__it/gt/le/eq/ne__
<,>,<=,>=,==,!=
__contains__
__enter/exit__
__get/set/delattr__
属性运算
包装与代理
其他
自定义异常类
从Exception派生
支持with语法的自定义类
元类
系统调度:实现高并发的处理任务
进程与线程
线程
进程
协程