1、数字类型
1、整数类型
可正可负,无取值范围
四种进制表达形式:二进制,八进制,十进制,十六进制
2、浮点数类型
带有小数点及小数的数字
取值范围约-10307至10308,精度数量级10^-16
浮点数运算存在不确定性尾数,不是bug,一般发生在10^-16左右,可以使用**round(x,y)对x四舍五入,d为小数截取位数。浮点数间运算与比较用round()**函数辅助
可采用科学计数发表示,使用字母e或E作为幂的符号,以10为基数,格式为< a >e< b > 表示 a*10^b
3、复数类型
与数学中复数一致
z为一个复数,z.real获得实部,z.imag获得虚部
4、运算操作符
+,-,*,/
//,+x,-y,x%y,x**y
对应有二元操作符
类型间可以进行混合运算,生成结果为“最宽”的类型
5、运算函数
abs(x):绝对值
divmod(x,y):商余,(x//y,x%y)
power(x,y[,z]):幂余,(x**y)%z,z可以省略
round(x[,d]):四舍五入,d为保留的小数位数,默认0
max(x1,x2,...xn):最大值
min(x1,x2,...xn):最小值
int(x):将x变成整数,舍弃小数部分
float(x):将x变成浮点数,增加小数部分
complex(x):将x变成复数,增加虚数部分
2、字符串类型
1、索引与切片
[M]
[M:N]
[M:]
[:N]
[M:N:K]
[::-1]
2、转义符
-表达特定字符的本意
-形成组合,表达一些特殊含义:\b回退,\n换行(光标移到下行首),\r回车(光标移到本行首)
3、字符操作符
x+y:连接两个字符串x和y
n * x或x * y:复制n次字符串x
x in s:判断x是否是s的子串
4、字符串处理函数
len(x):返回字符串x的长度
str(x):任意类型x对应的字符串形式
hex(x)或oct(x):整数x的十六进制或八进制小写形式字符串
chr(u):返回Unicode编码对应的字符
ord(x):返回x字符对应的Unicode编码
5、字符串处理方法
str.lower()或str.upper():返回字符串的副本,全部字符小写/大写
str.split(sep=None):返回一个**列表**,由str根据sep被分隔的部分组成
str.count(sub):返回子串sub在str中出现的次数
str.replace(old,new):返回字符串str的副本,所有old字串被替换为new
str.center(width[,fillchar]):字符串str根据宽度width居中,fillchar可选
str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter):在iter变量除最后元素外每个元素后增加一个str,主要用于字符串分隔等
",".jion("12345")
结果为:"1,2,3,4,5"
6、字符串类型的格式化
<模板字符串>.format(<逗号分隔的参数>)
3、集合类型
集合是多个元素的无序组合
用大括号{}表示,元素间用逗号分隔
建立集合类型用{}或set()
建立空集合类型必须使用set()
1、集合操作符
S|T:并,返回一个新集合
S-T:差,返回一个新集合
S^T:补,返回一个新集合
S&T:交,返回一个新集合
S<=T 或S<T:返回True/False
S>=T 或S>T:返回True/False
四个增强操作符:
S|=T:并,更新集合S
S-=T:差,更新集合S
S^=T:补,更新集合S
S&=T:交,更新集合S
2、集合处理方法
S.add(x):如果x不在集合S中,将x增加到S
S.discard(x):移除S中元素x,如果x不在集合S中,不报错
S.remove(x):移除移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear():移除S中所有元素
S.pop():随机返回S的一个元素,并更新S,若S为空产生KeyError异常
S.copy():返回集合S的一个副本
len(S):返回集合S的元素个数
x in S:判断S中元素x,x在集合S中,返回True,否则返回False
x not in S:判断S中元素x,x不在集合S中,返回True,否则返回False
set(x):将其他类型变量x转变为集合类型
3、集合类型应用场景
包含关系比较
>>>"p" in {"p","y",123}
True
>>>{"p","y"} >= {"p","y",123}
False
数据去重:集合类型所有元素无重复
>>>ls=['p','p','y','y',123]
>>>s=set(ls) #利用集合无重复元素的特点
{"p","y",123}
>>>lt=list(s) #将集合转换为列表
["p","y",123]
4、序列类型
序列是具有先后关系的一组数据
-序列是一维元素向量,元素类型可以不同
-类似数学元素序号
-元素间由序号引导,通过下标访问序列的特定元素
序列是一个基类类型:字符串类型,元组类型,列表类型
6个操作符
x in s:如果x是序列s的元素,返回True,否则返回False
x not in s:如果x是序列s的元素,返回False,否则返回True
s + t:连接两个序列s和t
s*n 或 n*s :将序列s复制n次
s[i]:索引,返回s中的第i个元素,i是序列的序号
s[i:j] 或 s[i:j:k]:切片,返回序列s中第i到j以k为步长的元素子序列
5个函数和方法
len(s):返回序列s的长度,即元素个数
min(s):返回序列s的最小元素,s中元素需要可比较
max(s):返回序列s的最大元素,s中元素需要可比较
s.index(x) 或 s.index(x,i,j):返回序列s从i开始到j位置中第一次出现元素x的位置
s.count(x):返回序列s中x出现的总次数
1、元组类型
-元组是一种序列类型,一旦创建就不能被修改
-使用小括号()或tuple()创建,元素间用逗号,分隔
-可以使用或不使用小括号
-元组继承了序列类型的全部通用操作
2、列表
列表是序列类型的一种扩展
-列表是一种序列类型,创建后可以随意被修改
-使用方括号[]或list()创建,元素间用逗号,分隔
-列表中各元素类型可以不同,无长度限制
列表类型操作函数和方法
ls[i]=x:替换列表ls第i元素为x
ls[i:j:k]=lt:用列表lt替换ls切片后所对应元组子列表
del ls[i]:删除列表ls中第i元素
del ls[i:j:k]:删除列表ls中第i到第j以k为步长的元素
ls +=lt:更新列表ls,将列表lt元素增加到列表ls中
ls *=n:更新列表ls,其元素重复n次
ls.append(x):在列表ls最后增加一个元素x
ls.clear():删除列表ls中所有元素
ls.copy():生成一个新列表,赋值ls中所有元素
ls.insert(i,x):在列表ls的第i位置增加元素x
ls.pop(i):将列表ls中第i位置元素取出并删除该元素
ls.remove(x):将列表ls中出现的第一个元素x删除
ls.reverse():将列表ls中的元素反转
序列类型应用场景
元素遍历:
for item in ls:
<语句块>
for item in tp:
<语句块>
数据保护:如果不希望数据被程序所改变,转换成元组类型
>>>ls=['cat','dog',1234]
>>>lt=tuple(ls)
>>>lt
('cat','dog',1234)
5、字典类型
映射是一种键(索引)和值(数据)的对应
键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()创建,键值对用冒号:表示
在字典变量值,通过键获得值,用[]向字典变量中索引或增加元素
tips:
type(x):返回变量x的类型
1、字典类型操作函数和方法
del d[k]:删除字典d中键k对应的数据值
k in d:判断键k是否在字典d中,如果在返回True,否则False
d.keys():返回字典d中所有键信息
d.values():返回字典d中所有的值信息
d.items():返回字典d中所有的键值对信息
d.get(k,<default>):键k存在,则返回相应值,不在则返回<default>值
d.pop(k,<default>):键k存在,则取出相应值,不在则返回<default>值
d.popitem():随机从字典d中取出一个键值对,以元组形式返回
d.clear():删除所有的键值对
len(d):返回字典d中元素的个数
2、字典类型应用场景
映射的表达
元素遍历