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