python基础结构
2019-04-29 10:38:48 1 举报
AI智能生成
python基础脑图续
作者其他创作
大纲/内容
数据类型
程序概念层级
表达式: 创建处理对象
语句包含表达式
包和模块
程序
变量与存储
变量: 对象别名
命名规则
字母/数字/下划线
只能以字母或下划线开头
不能包含空格
避免Python关键字或函数名
简短并具有描述性
区分大小写
创建:第一次赋值时生成
类型
描述数据形态及支持操作
Python动态类型
存储
对象有类型,存储在内存区域
变量名指向实际对象,变量本身无类型
对象本身带有类型及引用计数器
共享引用:多个变量引用同一对象
== 判断字面值是否相等
is 判断引用对象地址是否相同
0-255 Python自动缓存
短字符串也可以被缓存
id(obj) 检测对象地址
垃圾回收机制
Python自动释放未被引用的对像
通过对象引用计数器统计引用
内置核心数据类型
数值类型
整型 int | 浮点型 float
字面值
0o 八进制
0x 十六进制
0b 二进制
数学运算符
+ 加
- 减
* 乘
** 计算次方
/ 除
// 整除
% 取余
...
常用函数
int("字面值",进制) 强转为整型
float("字面值") 强转为浮点
hex(number) 转换为16进制
oct(number) 转换为8进制
bin(number) 转换为2进制
round()
# 四舍五入取整
工具模块
math
math.floor()
#《地板》意思是总是往下,往小的方向转’整
math.ceil()
#《天花板》意思是总是往上,往大的方向转’整
math.trunc()
#《截断》意思是往0的方向去取整
...
decimal
Decimal
Decimal("0.1")
布尔型(bool)的本质
<font color="#f384ae">True</font> 本质是1
<font color="#f384ae">False</font> 本质是0
序列
可变
list列表
可包含任意对象的有序集合
通过下标索引(位置偏移)访问元素
可变长度,异质(不同类型),可任意嵌套([[]])
支持原位改变
对象引用数组
#索引引用
常用操作
排序
l.<font color="#c41230">sort(</font>key=None,revrse=Fakse<font color="#c41230">)</font>
<font color="#c41230" style="">sorted(</font>t<font color="#c41230" style="">)</font>
通用操作
改变某个元素值 s[i]=x
<span>#要加 [] 例:s[i]=[x]</span>
改变特定范围内元素值
s[i:j]=t
<span>#要加 [] 例:s[i]=[x]</span>
s[i:j:k]=t
#s 列表中 i 索引值到 j 索引值的 k 个步长数改为 't'
<span>#要加 [] 例:s[i]=[x]</span>
#改变数要和对应的步长元素数目相匹配
删除元素
<font color="#c41230">del</font> s[i]
<font color="#c41230">del </font>s[i:j]
<font color="#c41230">del</font> s[i:j:k]
# 注意步长
s.<font color="#c41230">remove(</font>x<font color="#c41230">)</font>
#直接删除元素;如果要删除的元素有多个那么只会删除第一个匹配值
s.<font color="#c41230">clear()</font>
#清空序列元素
追加元素 s.<font color="#c41230">append(</font>x<font color="#c41230">)</font>
扩展序列 s.<font color="#c41230">extend(</font>x<font color="#c41230">)</font>
插入元素
s.<font color="#c41230">insert(</font>i,x<font color="#c41230">)</font>
# 在特定的索引位置插入元素
s[i:i]=x
#在两个相同的索引之间插入元素
<span>#要加 [] 例:s[i]=[x]</span>
检索并删除特定元素 s.pop()
s.<font color="#c41230">pop(</font>obj<font color="#c41230">)</font>
#弹出并删除某一个元素
<font color="#c41230">s.pop()</font>
#默认从右往左开始弹出并删除一个元素
x=s.<font color="#c41230">pop()</font>
#可捕获pop弹出的元素
反转系列 s.<font color="#c41230">reverse()</font>
!#不会返还新值,只会对原s序列有影响
复制序列 s.<font color="#c41230">copy()</font>
<ol><li> x=s.<font color="#c41230">copy()</font><br></li></ol>
#复制一份s的列表元素给x
!# x=s 是共享引用不是复制
2. x=s[:]
#将s[i:j]的元素复制一份给x
!# x=s 是共享引用不是复制
不可变
tuple 元组
可包含任意对象的有序集合
通过下标索引(位置偏移)访问元素
固定长度,异质(不同类型),可任意嵌套([{}])
对象引用数组
range 范围
一般用于生成数值序列,以便执行特定次数的循环
文本序列 str 字符串
字面值
"字符串"
'字符串'
"""多行字符串"""
r"\a\b\c" 原始字符串,忽略转义符
转义符
\n 换行
\t Tab
\\ \
\a 退格
\r 回车
\'
\"
\? ?
\0 空字符
\ooo 以八进制数声明字符
\xhh 以十六进制数声明字符
序列通用操作
常用操作
<font color="#c41230">str(</font>obj<font color="#c41230">)</font>
#类型转换
str(<font color="#c41230">x</font>)<font color="#c41230">+s[i:j]</font>
#将x字符+·s序列里的i到j字符
!#也可以用来替换,但原内容不变
str.<font color="#c41230">replace(</font>old,new[count]<font color="#c41230">)</font>
#s.replace('你要替换的旧字符','你要替换的新字符',替换数量)
str=str.<font color="#c41230">replace(</font>old,new<font color="#c41230">)</font>
# 可以达到变通的从新修改字符串
str.<font color="#c41230">capitalize()</font>
#可以将英文字母的字符串第一个字母变成大写
#一般是用在英文句子了比较常用
str.<font color="#c41230">capitalize()</font>
#可以将英文字母的字符串第一个字母变成大写
#一般是用在英文句子了比较常用
str.<font color="#c41230">upper()</font>
#可以将英文字母全部变成大写
str.<font color="#c41230">lower()</font>
#可以将英文字母全部变成小写
str.<font color="#c41230">startswith(</font>'str'<font color="#c41230">)</font>
#用来判断字符串的开头,它返回的值是布尔型的True和False
str.<font color="#c41230">endswith(</font>'str'<font color="#c41230">)</font>
#用来判断字符串的结尾,它返回的值是布尔型的True和False
str.<font color="#c41230">isnumeric()</font>
#判断当前字符串是否为数字
str.<font color="#c41230">isalpha()</font>
#判断当前的<u>字符串的<font color="#ff99ff">字符</font></u>是否为字母
str.<font color="#c41230">split()</font>
#用来拆分
<font color="#381e11">例:变量.</font><font color="#c41230">split(</font><font color="#381e11">'你想要拆分的字符'</font><font color="#c41230">)</font><font color="#381e11">;返还一个</font><font color="#0076b3">列表</font><font color="#381e11">并且拆分的‘字符’转换成‘,’分隔开其他的字符</font>
!# 如果不输入要拆分的字符;str.<font color="#c41230">split()</font> #会当做<font color="#16884a">一个整体</font><font color="#0076b3">列表</font>元素的<font color="#16884a">一个</font>字符串;将整体作为一个元素来存在!
s=str.<font color="#c41230">split()</font>;返还得到一个新的<font color="#0076b3">列表</font>
str.<font color="#c41230">join()</font>
#用来链接
例:'你想用类链接的字符或符号'.<font color="#c41230">jioin(</font>str<font color="#c41230">)</font>;
str.<font color="#c41230">format()</font>
#用来格式化字符串
例子
s1='a' ;s2='b' ;s3='c'
>>>‘x:{0},x:{1},x:{2}'.<font color="#c41230">format(</font>s1,s2,s3<font color="#c41230">)</font>
>>> ‘x:a,x:b,x:c’
<ul><li>>>>‘x:{0},x:{1},x:{2},{<u><font color="#99ccff">0</font></u>}'.<font color="#c41230">format(</font>s1,s2,s3<font color="#c41230">)</font><br></li></ul>
#可重复
>>> ‘x:a,x:b,x:c,<font color="#99ccff">a</font>’
<ul><li>也可以>>>‘x:{0},x:{1},x:{2},x:{<u style="font-size: 14px;">adc</u><span style="font-size: 14px;">}'.</span><font color="#c41230" style="font-size: 14px;">format(</font><span style="font-size: 14px;">s1,s2,s3,<u>adc</u>='</span><font face="黑体" style="font-size: 14px;" color="#381e11"><b style="">123</b></font><span style="font-size: 14px;">'</span><font color="#c41230" style="font-size: 14px;">)</font><br></li></ul>
#就是如果没有事先创建好变量可以在操作符里创建并添加
>>>'x:a,x:b,x:c,x:123'
<ul><li>>>>'{0}={1}'.<font color="#c41230">format(</font>s1,s2<font color="#c41230">)</font></li></ul>
#拼接
<ul><li>>>>'{0:<font color="#c41230">n</font>}={1:<font color="#c41230">n</font>}'.<font color="#000000">format(s1,s2)</font></li></ul>
#'n'保留空格数,对不同的类型展现的结果都不一样
<ul><li><font color="#381e11">>>>'{0:,</font><font color="#c41230"><</font><font color="#381e11">n}={1:</font><font color="#c41230"><</font><font color="#381e11">n}'.format(s1,s2)</font></li></ul>
#用'<','>'展现对齐的方向
填充常跟对齐一起使用:^、<、>分别是居中、左对齐、右对齐,后面带宽度
浮点型操作
'<font color="#c41230">{:f}</font>,<font color="#f15a23">{:.2f}</font>,<font color="#0076b3">{:06.2f}</font>'.format(3.14159,3.14159,3.14159)
>>>'<font color="#c41230">3.141590</font>,<font color="#f15a23">3.14</font>,<font color="#0076b3">003.14</font>'
<font color="#c41230">:f </font><font color="#381e11">用普通的浮点型来</font><span style="color: rgb(56, 30, 17);">显示</span>
<font color="#f15a23">:.2f </font> 用来显示保留两位小数的浮点型
<font color="#0076b3">:06.2f</font> 以补0的形式来展现6位数的保留两位小数的浮点型
整型操作
'<font color="#f15a23">{:x}</font>,<font color="#c41230">{:o}</font>,<font color="#0076b3">{:b}</font>'.format(230,230,230)
>>>'<font color="#f15a23">e6</font>,<font color="#c41230">346</font>,<font color="#0076b3">11100110</font>'
<font color="#0076b3">:b</font> 二进制来显示
<font color="#c41230">:o</font> 八进制来显示
:d 十进制来显示
<font color="#f15a23">:x </font> 十六进制来显示
通用操作
判断元素是否在序列之内
x <font color="#c41230">in</font> s
#判断x 元素是否在s 序列里面
x <font color="#c41230">not in</font> s
#判断x元素是否不在s序列里面
链接序列
s1 + s2
重复序列元素
s * n
#s 序列重复 n次
下标索引获取元素
s[i]
访问指定索引范围
s[i:j]
按步长访问指定索引范围
s[i:j:k]
#x序列中i索引到j索引范围的元素隔k段所得的元素
函数
获取序列长度
<font color="#c41230">len(</font>s<font color="#c41230">)</font>
获取最小值
<font color="#c41230" style="">min</font><font color="#c41230">(</font>s<font color="#c41230">)</font>
获取最大值
<font color="#c41230">max(</font>s<font color="#c41230">)</font>
统计总和
<font color="#c41230">sum(</font>s<font color="#c41230">)</font>
方法
检索某个元素第一个出现位置下标
s.<font color="#c41230">index(</font>x<font color="#c41230">)</font>
#检索s序列中x元素的下标索引位置
统计元素出现的次数
s.<font color="#c41230">count(</font>x<font color="#c41230">)</font>
#统计s序列中x元素出现的次数
映射
dict 字典表
特性
通过键(key).而非位置偏移(下标索引)访问数据
可包含任意对象的无序集合
可变长度,异质,可任意嵌套
属"可变映射"分类
对象引用表(Hash Table)
声明
{}空的字典表
<font color="#c41230">{</font>key<font color="#c41230">:</font>value,<font color="#c41230">}</font>
#(键:值)
<font color="#c41230">dict(</font>key=value<font color="#c41230">)</font>
例:x=<font color="#c41230">dict(</font>y='acb'<font color="#c41230">)</font>
#参数(y)在传值的时候不要加上引号(''),声明以后的键会自动默认加上引号('')以字符串的类型来转换键
<font color="#c41230">dict(</font><font color="#55beed">[</font>(key,value),(key,value),<font color="#31a8e0">]</font><font color="#c41230">)</font>
#传入序列或可叠带对象,有规律的key:value对
例:x=<font color="#c41230">dict(</font><font color="#55beed">[</font>('a',20),('b','c')<font color="#55beed">]</font><font color="#c41230">)</font>
#可以将规范的数据信息转换成字典表,如此列表
方法
dict<font color="#c41230">.fromkeys(</font><font color="#55beed">[</font>key1,key2,...<font color="#55beed">]</font><font color="#c41230">)</font>
例:x=dict.<font color="#c41230">fromkeys(</font><font color="#55beed">[</font>a,b,c<font color="#55beed">]</font><font color="#c41230">)</font>
#调用字典表<font color="#c41230">fromkeys</font>将列表传入x(字典表)并将列表的每一个元素作为x(字典表)的(key),自动生成(value)<u>None</u>空对象
<font color="#c41230">!# 值可以改</font>
常用操作
元素访问
data['key']
#直接用字典表的<u>键</u>访问值
data.<font color="#c41230">get(</font>'key','default'<font color="#c41230">)</font>
#好处在于如果访问的键不存在它不会报错!而且还可以指定一个返还的(default)默认值
key <font color="#c41230">in </font>data
#判断元素是否是在变量里;判断元素是否不在变量里用 <font color="#c41230">not in</font>
data.<font color="#c41230">keys()</font>
#得到所有的 键
<font color="#c41230">!# 返还是视图不是列表</font>
data.<font color="#c41230">values()</font>
#得到所有的 值
<font color="#c41230">!# 返还是视图不是列表</font>
data.<font color="#c41230">items()</font>
#得到所有的 项
<font color="#c41230">!# 返还是视图不是列表</font>
<font color="#c41230">len(</font>data<font color="#c41230">)</font>
#获取字典变的 项 的数目
<font color="#c41230">!# 返还是视图不是列表</font>
data.<font color="#c41230">copy()</font>
#复制副本
data.<font color="#c41230">clear()</font>
#清楚数据项
data[key]=value
#重新赋值;<font color="#c41230">修改键的值</font>
data.<font color="#c41230">update(</font>data2<font color="#c41230">)</font>
#用来更新合并或<font color="#cc99ff">添加</font>数据
删除
data.<font color="#c41230">pop()</font>
#弹出并删除
!# 也可以data.pop(key,<u>default</u>)输入一个默认值 <font color="#c41230">pop</font>跟<font color="#c41230">get</font>原理是相似的
data.<font color="#c41230">popitem()</font>
#默认弹出一个字典表的 键:值 对的项
<font color="#f15a23">del</font> data[key]
#用全局函数删除指定的项
文件
声明 :函数=open('<font color="#b8b8b8">路径</font>','<font color="#924517">模式</font>',encoding='编码')
路径
'c\\path\\data.txt'
# python标准声明方式'\\'是为了转义
<font color="#f384ae">r</font>'c\path\data.txt'
# 前面加'r'声明为原始字符串
'data.txt'
#直接输入文件名系统会自动去环境变量找对应同名的文件
模式
文本
‘r’
#表示是以<u><font color="#f384ae">读</font></u>的方式来操作
‘w’
#表示是以<u><font color="#f384ae">写</font></u>的方式来操作
写的形式会将文本的原内容全部替换
‘rw’
#表示同时<font color="#f384ae">读写</font>的方式来操作
‘a’
#表示用<font color="#f384ae">追加</font>的方式来操作
追加的形式输入会从结尾进行继续输入
r+
rb+
wb+
ab+
二进制
‘<font color="#c41230">*b</font>’
<u>文本操作模式</u>符后面加上'*b'表示声明为以二进制字节的方式来操作
例: 'rb' 二进制读取
子主题
操作
函数.<font color="#c41230">read()</font>
#一次性读取信息
函数.<font color="#c41230">seek(</font>光标位置<font color="#c41230">)</font>
#切换光标位置;用于重新读取信息
函数.<font color="#c41230">close()</font>
#关闭文件链接
读取
函数.<font color="#c41230">read(</font><font color="#9f8759">N</font><font color="#c41230">)</font> 一次性读取所有或指定字符(字节)信息
函数.<font color="#c41230">readlines()</font> 读取行到列表
<span style="font-size: 14px;">函数.<font color="#c41230">readline()</font> 读取下一行</span><br>
<font color="#f15a23">for</font> line <font color="#f15a23">in</font> 函数: 遍历迭代
<font color="#f68b1f">for</font> line <font color="#f68b1f">in</font> f<strike>.readlines()</strike>:
<font color="#ff99ff">print</font>(line,<u>end</u>=<font color="#f15a23">''</font>)
写入
<font color="#c41230">.write()</font> 写入字符串
<font color="#c41230">.writelines() </font><font color="#381e11"> 写入多行信息</font>
<font color="#c41230">.flush() </font><font color="#381e11">不关闭文件的情况下输出缓存到磁盘</font>
<font color="#c41230">!# 用‘w’写入模式来操作系统会自动替换原有的信息;想追加可用‘a’追加的方式操作</font>
<font color="#f68b1f">with </font><font color="#ff99ff">open</font>('路径/脚本','模式',encoding='utf8') <font color="#f68b1f">as</font> 函数:
#上下文语法操作(操作结束后会自动调用close()关闭可以不手动关闭)
集合
程序单元类型
其他
类型对象 <font color="#c41230">type(</font>odj<font color="#c41230">)</font>
空对象 None
布尔 bool
常量
True
False
函数
bool(obj)
# 可以将括号里的对象转换成True和False的值
真值测试
等同于False
0,或0.0
None
#空对象
'', () ,[]
#空的字符串,空的元组,空的列表
{}
#空的字典 硬设
语句与流程控制
语句
赋值
运行函数
选择执行
迭代执行
循环
函数
模块与命名空间
运行函数
子主题
收藏
0 条评论
下一页