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)的本质
True 本质是1
False 本质是0
序列
可变
list列表
可包含任意对象的有序集合
通过下标索引(位置偏移)访问元素
可变长度,异质(不同类型),可任意嵌套([[]])
支持原位改变
对象引用数组
#索引引用
常用操作
排序
l.sort(key=None,revrse=Fakse)
sorted(t)
通用操作
改变某个元素值 s[i]=x
#要加 [] 例:s[i]=[x]
改变特定范围内元素值
s[i:j]=t
#要加 [] 例:s[i]=[x]
s[i:j:k]=t
#s 列表中 i 索引值到 j 索引值的 k 个步长数改为 't'
#要加 [] 例:s[i]=[x]
#改变数要和对应的步长元素数目相匹配
删除元素
del s[i]
del s[i:j]
del s[i:j:k]
# 注意步长
s.remove(x)
#直接删除元素;如果要删除的元素有多个那么只会删除第一个匹配值
s.clear()
#清空序列元素
追加元素 s.append(x)
扩展序列 s.extend(x)
插入元素
s.insert(i,x)
# 在特定的索引位置插入元素
s[i:i]=x
#在两个相同的索引之间插入元素
#要加 [] 例:s[i]=[x]
检索并删除特定元素 s.pop()
s.pop(obj)
#弹出并删除某一个元素
s.pop()
#默认从右往左开始弹出并删除一个元素
x=s.pop()
#可捕获pop弹出的元素
反转系列 s.reverse()
!#不会返还新值,只会对原s序列有影响
复制序列 s.copy()
- x=s.copy()
#复制一份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 以十六进制数声明字符
序列通用操作
常用操作
str(obj)
#类型转换
str(x)+s[i:j]
#将x字符+·s序列里的i到j字符
!#也可以用来替换,但原内容不变
str.replace(old,new[count])
#s.replace('你要替换的旧字符','你要替换的新字符',替换数量)
str=str.replace(old,new)
# 可以达到变通的从新修改字符串
str.capitalize()
#可以将英文字母的字符串第一个字母变成大写
#一般是用在英文句子了比较常用
str.capitalize()
#可以将英文字母的字符串第一个字母变成大写
#一般是用在英文句子了比较常用
str.upper()
#可以将英文字母全部变成大写
str.lower()
#可以将英文字母全部变成小写
str.startswith('str')
#用来判断字符串的开头,它返回的值是布尔型的True和False
str.endswith('str')
#用来判断字符串的结尾,它返回的值是布尔型的True和False
str.isnumeric()
#判断当前字符串是否为数字
str.isalpha()
#判断当前的字符串的字符是否为字母
str.split()
#用来拆分
例:变量.split('你想要拆分的字符');返还一个列表并且拆分的‘字符’转换成‘,’分隔开其他的字符
!# 如果不输入要拆分的字符;str.split() #会当做一个整体列表元素的一个字符串;将整体作为一个元素来存在!
s=str.split();返还得到一个新的列表
str.join()
#用来链接
例:'你想用类链接的字符或符号'.jioin(str);
str.format()
#用来格式化字符串
例子
s1='a' ;s2='b' ;s3='c'
>>>‘x:{0},x:{1},x:{2}'.format(s1,s2,s3)
>>> ‘x:a,x:b,x:c’
- >>>‘x:{0},x:{1},x:{2},{0}'.format(s1,s2,s3)
#可重复
>>> ‘x:a,x:b,x:c,a’
- 也可以>>>‘x:{0},x:{1},x:{2},x:{adc}'.format(s1,s2,s3,adc='123')
#就是如果没有事先创建好变量可以在操作符里创建并添加
>>>'x:a,x:b,x:c,x:123'
- >>>'{0}={1}'.format(s1,s2)
#拼接
- >>>'{0:n}={1:n}'.format(s1,s2)
#'n'保留空格数,对不同的类型展现的结果都不一样
- >>>'{0:,<n}={1:<n}'.format(s1,s2)
#用'<','>'展现对齐的方向
填充常跟对齐一起使用:^、<、>分别是居中、左对齐、右对齐,后面带宽度
浮点型操作
'{:f},{:.2f},{:06.2f}'.format(3.14159,3.14159,3.14159)
>>>'3.141590,3.14,003.14'
:f 用普通的浮点型来显示
:.2f 用来显示保留两位小数的浮点型
:06.2f 以补0的形式来展现6位数的保留两位小数的浮点型
整型操作
'{:x},{:o},{:b}'.format(230,230,230)
>>>'e6,346,11100110'
:b 二进制来显示
:o 八进制来显示
:d 十进制来显示
:x 十六进制来显示
通用操作
判断元素是否在序列之内
x in s
#判断x 元素是否在s 序列里面
x not in s
#判断x元素是否不在s序列里面
链接序列
s1 + s2
重复序列元素
s * n
#s 序列重复 n次
下标索引获取元素
s[i]
访问指定索引范围
s[i:j]
按步长访问指定索引范围
s[i:j:k]
#x序列中i索引到j索引范围的元素隔k段所得的元素
函数
获取序列长度
len(s)
获取最小值
min(s)
获取最大值
max(s)
统计总和
sum(s)
方法
检索某个元素第一个出现位置下标
s.index(x)
#检索s序列中x元素的下标索引位置
统计元素出现的次数
s.count(x)
#统计s序列中x元素出现的次数
映射
dict 字典表
特性
通过键(key).而非位置偏移(下标索引)访问数据
可包含任意对象的无序集合
可变长度,异质,可任意嵌套
属"可变映射"分类
对象引用表(Hash Table)
声明
{}空的字典表
{key:value,}
#(键:值)
dict(key=value)
例:x=dict(y='acb')
#参数(y)在传值的时候不要加上引号(''),声明以后的键会自动默认加上引号('')以字符串的类型来转换键
dict([(key,value),(key,value),])
#传入序列或可叠带对象,有规律的key:value对
例:x=dict([('a',20),('b','c')])
#可以将规范的数据信息转换成字典表,如此列表
方法
dict.fromkeys([key1,key2,...])
例:x=dict.fromkeys([a,b,c])
#调用字典表fromkeys将列表传入x(字典表)并将列表的每一个元素作为x(字典表)的(key),自动生成(value)None空对象
!# 值可以改
常用操作
元素访问
data['key']
#直接用字典表的键访问值
data.get('key','default')
#好处在于如果访问的键不存在它不会报错!而且还可以指定一个返还的(default)默认值
key in data
#判断元素是否是在变量里;判断元素是否不在变量里用 not in
data.keys()
#得到所有的 键
!# 返还是视图不是列表
data.values()
#得到所有的 值
!# 返还是视图不是列表
data.items()
#得到所有的 项
!# 返还是视图不是列表
len(data)
#获取字典变的 项 的数目
!# 返还是视图不是列表
data.copy()
#复制副本
data.clear()
#清楚数据项
data[key]=value
#重新赋值;修改键的值
data.update(data2)
#用来更新合并或添加数据
删除
data.pop()
#弹出并删除
!# 也可以data.pop(key,default)输入一个默认值 pop跟get原理是相似的
data.popitem()
#默认弹出一个字典表的 键:值 对的项
del data[key]
#用全局函数删除指定的项
文件
声明 :函数=open('路径','模式',encoding='编码')
路径
'c\\path\\data.txt'
# python标准声明方式'\\'是为了转义
r'c\path\data.txt'
# 前面加'r'声明为原始字符串
'data.txt'
#直接输入文件名系统会自动去环境变量找对应同名的文件
模式
文本
‘r’
#表示是以读的方式来操作
‘w’
#表示是以写的方式来操作
写的形式会将文本的原内容全部替换
‘rw’
#表示同时读写的方式来操作
‘a’
#表示用追加的方式来操作
追加的形式输入会从结尾进行继续输入
r+
rb+
wb+
ab+
二进制
‘*b’
文本操作模式符后面加上'*b'表示声明为以二进制字节的方式来操作
例: 'rb' 二进制读取
子主题
操作
函数.read()
#一次性读取信息
函数.seek(光标位置)
#切换光标位置;用于重新读取信息
函数.close()
#关闭文件链接
读取
函数.read(N) 一次性读取所有或指定字符(字节)信息
函数.readlines() 读取行到列表
函数.readline() 读取下一行
for line in 函数: 遍历迭代
for line in f.readlines():
print(line,end='')
写入
.write() 写入字符串
.writelines() 写入多行信息
.flush() 不关闭文件的情况下输出缓存到磁盘
!# 用‘w’写入模式来操作系统会自动替换原有的信息;想追加可用‘a’追加的方式操作
with open('路径/脚本','模式',encoding='utf8') as 函数:
#上下文语法操作(操作结束后会自动调用close()关闭可以不手动关闭)
集合
程序单元类型
其他
类型对象 type(odj)
空对象 None
布尔 bool
常量
True
False
函数
bool(obj)
# 可以将括号里的对象转换成True和False的值
真值测试
等同于False
0,或0.0
None
#空对象
'', () ,[]
#空的字符串,空的元组,空的列表
{}
#空的字典 硬设
语句与流程控制
语句
赋值
运行函数
选择执行
迭代执行
循环
函数
模块与命名空间
运行函数
子主题
收藏
0 条评论
下一页