Py基础思维导图
2018-05-01 10:42:38 0 举报
AI智能生成
python知识思维导图,不断更新中
作者其他创作
大纲/内容
字典
介绍
定义
格式
简单例子
特性
字典
子主题
方法
子主题
元组
定义
Python将不可能修改的值称为不可变的,而不可变的列表被成为元组
格式
元组看起来犹如列表,但是使用圆括号而不是方括号来标识
例如
menu = (12, 30)或者menu = tuple((12, 30))
特性
1.可存放多个值
2.不可变,修改就出错了
3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序
2.不可变,修改就出错了
3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序
方法
集合
定义
集合是一个无序的、不重复 的数据组合
作用
去重:把一个列表变成集合,就自动去重了
关系测试:测试两组数据之前的交集、差集、并集等关系
例子
列表转集合
>>> a = [1,3,5,7,9]
>>> a
[1, 3, 5, 7, 9]
>>> b = set(a)
>>> b
{1, 3, 5, 7, 9}
>>> type(b)
>>> type(a)
>>> a
[1, 3, 5, 7, 9]
>>> b = set(a)
>>> b
{1, 3, 5, 7, 9}
>>> type(b)
>>> type(a)
方法
删除
s.pop
随机删除,因为是无序的不过在数量少的情况下,无序体现不出来
>>> b
{1, 3, 5, 7, 9}
>>> b.pop()
1
>>> b
{3, 5, 7, 9}
{1, 3, 5, 7, 9}
>>> b.pop()
1
>>> b
{3, 5, 7, 9}
s.remove
指定删除
>>> b
{5, 7, 9}
>>> b.remove(9)
>>> b
{5, 7}
{5, 7, 9}
>>> b.remove(9)
>>> b
{5, 7}
三、字符串
定义
字符串就是一系列字符。
用括号括起来的都是字符串
单引号和双引号
区别
一般情况下没有区别
没有撇号等
如果需要用到撇号,就需要使用双引号
>>> print("i'm Sam")
i'm Sam
>>> print('i'm Sam')
File "", line 1
print('i'm Sam')
^
SyntaxError: invalid syntax
>>> print('i\'m Sam')
i'm Sam
i'm Sam
>>> print('i'm Sam')
File "
print('i'm Sam')
^
SyntaxError: invalid syntax
>>> print('i\'m Sam')
i'm Sam
字符串中包含引号
>>> print("\"Hello\" she said")
"Hello" she said
"Hello" she said
拼接字符串
内置方法
子主题
模块
是什么
为什么
怎么用
使用内置模块
使用自定义模块
使用第三方模块
模块的导入方式
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
子主题
logging模块
一、介绍
基调
Pyhon就是牛X,不解释
历史
08年python3和python2
python2和python3不同点:
Python2
python3
python 的分类
解释型:代码从上至下逐行解释并运行
优点
缺点
编译型:将代码一次性全部编译成字节码
优点
缺点
python的优缺点
优点
缺点
python解释器种类
二、变量、注释、规范
变量
示例
>>> mes = "123"
>>> print(mes)
123
>>> mes = "456"
>>> print(mes)
456
>>>
>>> print(mes)
123
>>> mes = "456"
>>> print(mes)
456
>>>
解释器工作过程
变量的命名规范
数据类型
字符串(单独成章)
注释
三、列表
介绍
差增删改
访问
增加
子主题
删除
插入
修改
子主题
组织列表
排序
操作列表
遍历列表
for循环
子主题
建议命名
使用单数和负数式名称可帮助判断代码段处理的是单个列表还是整个列表。
例如:
for cat in cats:
for dog in dogs:
for item in list_of_items:
for cat in cats:
for dog in dogs:
for item in list_of_items:
结构体
if
if单分支
if-else
if-elif
if-elif-else
while
for
文件操作
格式
文件模式
文件操作
打开、读取
写入
追加
混合操作
文件修改功能
r+模式
函数
是什么
来源
函数一词来源于数学
但编程中的“函数”概念,与数学中的函数的概念是不同的
定义
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,需要调用其函数名即可
子主题
为什么
提升逼格
其实这不是一个理由
减少重复
提高执行效率
节省代码
增加可读性
写法
简单写法
def say_hi():
print("Hell World!")
say_hi()
print("Hell World!")
say_hi()
注意:调用函数,必须要加可以括号。不加括号打印的是`函数的内存`的地址,加了括号才是真正要执行的内容
参数
实参
位置参数
按顺序一一对应
关键参数
name=alex 一一回应
混合参数
位置参数\关键字参数\放在位置参数后面
形参
位置参数
默认参数
传值即覆盖
可变参数
当函数的定义的时候:*和**代表聚合,将实参度对应的所有位置参数聚合到一个元组,赋值给args
*args
**kwargs
**将实参的对应的所有的关键字参数聚合到一个字典中,赋值给kwargs
关键字传递(字典)
当函数的调用时,*,**表示打散,*是将所有的iterable元素打散成实参的位置参数
**是将所有的关键字参数打算成实参的关键字参数
**是将所有的关键字参数打算成实参的关键字参数
顺序
位置参数,*args默认参数,**kwargs
返回值
作用
函数中如果遇到return则直接结束函数
子主题
return
1.结束函数
2.返回给函数的调用者(执行者)
只有return
返回一个None
return单个值
返回单个值,不改变类型
return多个值
返回一个包含多个值的元组
没有return 默认返回None
局部变量
使用
局部修改
在函数里修改列表数据
嵌套函数
其实就在于 认清程序是顺序读取的,从外到内、从上到下
值得注意的是:对于变量还是要先定义再使用,不然就会得到意外的结果
作用域
所有的局部变量其实就是放在当前函数的作用域内
一个函数一旦定义,改作用域就已经生成了
全局作用域
全局名称空间
存储当前py文件的变量与值的对应关系
内置名称空间
built-in\module
局部作用域
局部名称空间
当函数执行时,内存临时开辟一个空间存储函数内部变量与值的关系,随着函数的结束而消失.
加载顺序
内置名称空间->程序运行时:全局名称空间->函数调用时:局部名称空间
取值顺序
就近原则
LEGB
匿名函数lambda
特点
简洁
方便临时使用
不支持复杂的逻辑判断(例如:if),可以支持三元运算
作用
Python提供了一种名为lambda表达式
的功能,让你能够创建内嵌的简单函数
(主要供 map 、 filter 和 reduce 使用)
的功能,让你能够创建内嵌的简单函数
(主要供 map 、 filter 和 reduce 使用)
节省代码量
例子:
与map方法配合使用
data = list(range(10))
print(data)
print(list(map(lambda x:x*x,data)))
———结果----------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(data)
print(list(map(lambda x:x*x,data)))
———结果----------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
一般形式--不用匿名函数
data = list(range(10))
print(data)
def fac(x):
return x*x
# ~ print(list(map(lambda x:x*x,data)))
print(list(map(fac,data)))
-------结果-------------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(data)
def fac(x):
return x*x
# ~ print(list(map(lambda x:x*x,data)))
print(list(map(fac,data)))
-------结果-------------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
global nonlocal
global
在函数内部对全局变量进行修改
在函数内部声明一个全局变量
nonlocal
夏季函数对高级(更高级)非全局变量进行修改
递归
自身调用
尾递归
内置方法
作用域相关
globals()
locals()
其他相关
字符串类型代码执行
eval
exec
compile
输入输出相关
input
print
内存相关
hash
id
文件操作相关
open
模块相关
__import__
帮助
help
查看内置属性
dir
迭代器和生成器相关
range
next
iter
基础数据类型相关
数据类型
进制转换
bin
oct
hex
数学运算
abs
divmod
round
pow
sum
min
max
列表和元组
list
tuple
相关内置函数
reversed
slice
字符串相关(9)
str
format
bytes
bytearry
memoryview
ord
chr
ascii
repr
数据集合(3)
dict
set
frozenset
相关内置函数(8)
len
sorted
enumerate
all
any
zip
filter
map
装饰器函数
子主题
进阶函数
命名空间
概述
记录对象和对象名字对应关系的空间
作用域
LEGB
闭包
子主题
函数名的应用
函数名即函数地址
函数可以作为变量
函数名可以作为函数的参数
函数名可以作为函数的返回值
函数名可以作为容器类类型的元素
闭包
内部函数对外层函数非全局变量的引用,并将内层函数函数名返回
机制
Python解释器遇到闭包,那么这个空间不会随着函数的结束而释放
闭包的应用
装饰器
爬虫
生成器
通过Python代码写的迭代器,本质就是迭代器
生成器的形成方式
通过生成器函数
内部含有yield
send
return的区别
通过生成器推导式
循环模式
(变量(加工后的变量) for i in (iterable))
筛选模式
变量的
迭代器
可迭代对象
内部含有__iter__方法
迭代器
不仅还有__tier__还含有__next__
可迭代对象转化成迭代器->>
迭代器 iter(可迭代对象)
迭代器取值
__next__
for
close()
生成器中使用
python基础
python网络
python文件和函数
python面向对象
0 条评论
下一页