python基础数据类型,你想了解的这里都有
目录
python基础数据总结
数字型数据类型
数字型数据基本知识
-
int(整数)
- 整数包括正整数,负整数和零
-
float(浮点型)
- 浮点数位带小数点的数字
-
complex(复数)
- 复数由实部和虚部构成(如a+bj,a为实部,b为虚部,j为虚数单位j2=-1)
comp=1+2j print(comp.real) #获取实部(结果为浮点型) print(comp.imag) #获取虚部(结果为浮点型)
-
bool(布尔)
- 布尔(boolean),又叫逻辑,包括True和False,用于逻辑判断,这是一种特殊的整数类型,True可以用1表示,代表真;False可以用0表示,代表假
算术运算符
运算符 | 中文名称 | 功能描述 |
---|---|---|
+ | 加 | 两数相加 |
- | 减 | 两数相减 |
* | 乘 | 两数相乘 |
/ | 除 | 两数相除 |
// | 整除 | 取两数相除的整数部分 |
% | 取余 | 取两数相除的余数 |
** | 幂 | 进行幂计算 |
进制
-
二进制
- 只用0或1表示的数,二进制的基数为2,遵循逢二进一的原则,用0b开头表示二进制(早期的python不支持0b开头的二进制表示方式)
- 在底层语言中,机器码就是二进制码,所以使用二进制码在计算机中执行速度最快
a=0b0001 #定义一个二进制数据 b=bin(16) #将十进制16通过bin()方法强行转化为二进制 print(a) print(b)
-
八进制
- 用0到7表示的数,八进制的基数为8,遵循逢八进一的原则,用0o开头表示八进制
a=0o0007 #定义一个八进制 b=oct(16) #将十进制16通过oct()方法强行转化为八进制 print(a) print(b)
-
十进制
- 用0到9表示的数,十进制的基数为10,遵循逢十进一的原则,直接用数字不加前缀表示十进制
- 十进制是对于我们比较友好且常用的进制,我们平常定义的整数都是十进制(如18,90等)
-
十六进制
- 用0-9,a,b,c,d,e,f表示的数,十六进制的基数为16,遵循逢十六进一的原则,用0x开头表示二进制
a=0x00e9 #定义一个十六进制 b=hex(16) #将十进制16通过hex()方法强行转化为十六进制 print(a) print(b)
二进制运算符
运算符 | 中文名称 | 功能描述 |
---|---|---|
& | 位与 | a&b:将a与b的每一位一一相加,对应位全为1结果为1 |
| | 位或 | a|b:将a与b的每一位一一相加,对应位只要有一个1结果就为1 |
^ | 位异或 | a^b:将a与b的每一位一一相加,对应位不同就为1,相同则为0 |
~ | 位取反 | ~a:先将二进制a+1,然后取反,即-(a+1) |
<< | 左移 | a<<n:将二进制a全部左移n位,右边低位补0 |
>> | 右移 | a>>n:将二进制a全部右移n位,左边高位补0 |
字符串数据类型
字符串基础知识
- 字符串是用' '," "或'" "'括起来的任意字节的字符
- 字符串的序号
- 正向递增序号:从左到右为:0~n
- 反向递增序号:从右到左为:-1~-(n+1)
字符串数据操作方法(增 查 改)
-
增:只能合并(使用加号+),不能在其他位置添加
s=s+'world' #加号为合并增加 print(s)
-
查:可以通过索引或切片的方法
- 索引:字符串[m],但m不能超出字符串的长度,即m<len(s)
- 切片:字符串[m:n:k],根据步长k对字符串取[m,n),m,n,k可以采取反向序号
#索引 s='hello' print(s[1],s[2],s[0]) #切片 print(s[:]) print(s[1:3:2]) print(s[-1:-4:-1])
-
改:不能通过下标进行修改,只能通过切片合并的方式进行修改
s='hello' s=s[:1]+'i myfriend' #切片加合并的方式进行字符串的修改 print(s)
-
字符串处理函数
del(x):x可以是字符串,数字,集合,列表,元组,字典,类等 len(str):返回字符串长度 str(x):将x转化为字符串 chr(u):u为unicode编码,返回对应的字符 ord(x):x为字符,返回unicode编码
-
字符串常用处理方法
str.upper()|str.lower():将字符串中的字符全部变为大写|小写 ***** str.split('x'):将'x'字符的左右切开,返回一个列表 ***** str.strip([char]):[char]可选,一般不选:主要用于去除字符串str首尾的空格以及转义字符 ***** str.join(str1):将str1中除首尾部分每个字符后都添加上str(如 ','.join('123') ) str.count(x):返回字符串x在字符串str中的次数 str.replace(old_str,new_str):用new_str置换掉str中的old_str str.center(width[,fillchar]):将字符串长度修改为width长,str居中,剩余部分可加填充物fillchar str.capital():字符串首字母大写,其余小写 str.swapcase():字符串中大小写交换 str.title():字符串中每个单词的首字母大写 str.find(char):通过char找下标,如果找到了就返回下标,如果没找到就返回-1 str,index(char):通过char找下标,如果找到了就返回下标,如果没找到就报错
集合数据类型
集合基础知识
-
集合的定义
- 是多个元素的无序组合,是容器型数据类型之一
-
集合的特点
- 容器型数据类型
- 集合,元组,列表,字典
- 集合数据间无序且唯一
- 集合中数据是无序的,不能是不可变数据类型,但集合本身却是可变数据类型
- 可变数据类型:集合(set),列表(list),字典(dict)
- 不可变数据类型:int , float , bool , str , tuple
- 容器型数据类型
-
集合的作用
- 数据去重
- 关系测试(交差并补)
- 交:S&T,返回一个集合,包含S与T中相同的元素
- 差:S-T,返回一个集合,包含在S中但不在T中的元素
- 并:S|T,返回一个集合,包含S与T中的所有元素
- 补:S^T,返回一个集合,包含菲S与T中的元素
集合元素操作方法(增,删)
-
增
s.add(x):向集合中增加元素x s.update(s1):向集合s中更新s1元素,有相同就只保留一个
-
删
s.pop():取集合s中的第一个元素,同时更新集合s,若s为空会报错 s.discard(x):删除集合s中的x元素,x元素不在集合内也不会报错 s.remove(x):删除集合s中的x元素,x元素不在集合内会产生KeyError异常 s.clear():移除s中所有元素
-
其他
s.copy():创建一个s集合的副本 len(s):返回集合s的长度 ***** set(x):将x转换为集合 del(s):删除集合s ***** x in s|x not in s:判断x在不在集合s中,在返回True,不在返回False
元组数据类型
元组基础知识
- 元组定义:元组是序列的一种扩展,可以存储各种数据类型,用( )表示元组的开始和结束,元素之间用' , '分隔,元组只能查看其中的元素,不能增删改其中元素,可以存放比较重要的不能轻易被修改的数据
- 若元组中只有一个元素且没有逗号,那么该元组的类型就是元素本身的数据类型
元组元素操作方法(查)
-
查:通过下标去查找
t=(1,2,3,'yzh') print(t[-1]) #通过下标查看 print(t[1:]) #通过切片查看 for i in t: #通过循环查看 print(i)
-
其他
#合并元组 t1=t1+t2:将t2的数据增加至t1处 #删除元组 del(t):删除整个元组 #函数和方法 tuple(x):将x转化为元组 type(t):返回元组的类型 len(t):返回元组的长度 max(t):返回元组中最大的数,只支持同一种数据类型的数据按ascii码比较 min(t):返回元组中最小的数,只支持同一种数据类型的数据按ascii码比较 t.index(x):返回元组t中x的下标 t.count(x):返回元组t中x的数量
列表数据类型
列表基础知识
- 列表的定义:列表是一种可变的数据类型,可以存放各种数据类型数据,用[ ]表示,元素之间用 ' , '隔开,每个元素下都提供了一个对应的下标
列表元素操作(增 删 查 改)
-
增
#增加单值 ls.append(x):在列表ls最后一个元素后增加元素x ls.insert(index,x):在列表ls下标index处插入一个元素x #增加多值 ls.extend(ls1):将ls1中的数据增加至ls,不会改变ls本身的内存地址 ls=ls+ls1():将ls1中的数据增加至ls,会改变ls本身的内存地址
-
删
ls.pop():从列表尾取出一个元素,更新列表 ls.remove(x):从列表中删除第一次出现的x ls.pop(index):删除下标index处所在的元素 ls.clear():清除所有元素
-
查
#通过值寻找值得下标 ls.index(x[,start[,stop]]):start,stop可选,若x在列表ls中就返回x的下标,若没有就返回ValueError x in ls:判断元素x是否在ls中,在就返回True,不在就返回False #通过下标寻找对应得值 ls[m:n:k]:通过下标去查看值 for i in ls:循环查看
-
改
ls[m:n:k]=key:通过下标寻找值再修改,注意key中得值必须要与修改的值数量一致
-
其他
list(x):将x的数据类型转化为字符串数据类型 ls1=sorted(ls):对ls中的元素进行排序,同时不改变ls的原本排序 ls.copy():对ls进行副本复制 ls.sort(key=None,reverse=False):对ls中的元素进行排序,但会不改变ls的内存地址。其中key可选,reverse=False时,ls中的元素按从小到大排序,当reverse=True时,ls中的元素按从大到小排序 ls.reverse():将ls中元素进行翻转 ls.count(x):统计ls中x元素的个数
字典数据类型
字典基础知识
- 字典的定义:字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存,中间用 : 分隔。字典是可变数据类型,在Python3.5版本之前,字典是无序的,3.6以后是有序
- 字典的特点
- 唯一性:字典中的键必须唯一,若有相同的只会保留最后一个键值对元素
- 不可变性:字典中的键是不可变数据类型,字典中的值可以为任意数据类型
- 列表与字典的对比
- 列表
- 优点
- 能承载多种数据类型,操作方法多,本身灵活,可以存储大量的数据类型
- 缺点
- 如果数据量大的话,他的查询速度比较慢
- 列表只能按照顺序存储,数据与数据之间关联性不强。
- 优点
- 字典
- 优点
- 操作方法多,本身灵活,可以存储大量映射(关联)型数据类型
- 查询速度快
- 缺点
- 内存消耗大
- 优点
- 列表
字典元素操作方法(增 删 查 改)
-
增
d[key]=value:当为key字典中没有的值时,字典增加元素 d.setfault(k[,v]):k为新增的键,v为新增的值(v可选),当字典d中有k键时,会返回k对应的值
-
删
d.pop(k[,v]):k为要删除的键,v为对应的值(v可选),当k值不存在时,会返回v值 d.popitem():随即取出一对键值对(3.6版本取出最后一对键值对),以元组类型返回,同时更新字典 d.clear():删除字典中的所有键值对
-
查
#按键查找 d[key]:通过字典d的键key来寻找对应的值 d.get(k[,v]),k为要查看的键,v为对应的值(v可选),若k存在,则返回对应值,若不存在,则返回v值 #按循环查找 d.keys():以列表的形式返回所有键 d.values():以列表的形式返回所有的键对应的值 d.items():返回键值对列表,键值对以元组的形式返回
-
改
d[key]=value:key为字典d中存在的键,将key对应的值修改为value d.update(d1):将d1中的键值对增至d,若键重复则保留最后一个相同键值对
-
其他
del(d):删除整个字典d key in d.keys():检查key是否在字典的键中,在就返回True,不在就返回False d1=d.copy():复制一个d的副本 d.fromkeys(iterable[,value]):生产制定的键值对,键为iterable中的元素,对应的值都为value
运算符优先级
身份运算符
运算符 | 描述 |
---|---|
is | 用于判断是不是引自一个对象(内存地址是否不一致),一致返回True,不一致返回False |
is not | 用于判断是不是引自一个对象(内存地址是否不一致),不一致返回True,一致返回False |
成员运算符
运算符 | 描述 |
---|---|
in | 如果在指定序列中找到该值,就返回True,否则返回False |
not in | 如果在指定序列中没有找到该值,就返回True,否则返回False |
逻辑运算符
运算符 | 中文名称 | 描述 |
---|---|---|
and | 与 | 只有当两侧逻辑值都为1时结果才为1,其他情况为0 |
or | 或 | 只有两侧逻辑值有一个为1结果就为1 |
not | 非 | 对逻辑值取反 |
比较运算符
运算符 | 中文名称 | 描述 |
---|---|---|
> | 大于 | x>y;x的值大于y就返回True,否则返回False |
< | 小于 | x<y;x的值小于y就返回True,否则返回False |
== | 等于 | x==y;x的值等于y就返回True,否则返回False |
!= | 不等于 | x!=y;x的值不等于y就返回True,否则返回False |
>= | 大于等于 | x>=y;x的值大于等于y就返回True,否则返回False |
<= | 小于等于 | x<=y;x的值小于等于y就返回True,否则返回False |
赋值运算符
运算符 | 中文名称 | 描述 |
---|---|---|
= | 简单赋值 | —— |
+= | 加法赋值 | x+=y等于x=x+y |
-= | 减法赋值 | x-=y等于x=x - y |
*= | 乘法赋值 | x* =y等于x=x *y |
/= | 除法赋值 | x/ =y等于x=x /y |
//= | 取整赋值 | x// =y等于x=x //y |
**= | 取幂赋值 | x** =y等于x=x **y |
%= | 取余赋值 | x%=y等于x=x %y |
<<= | 左移位赋值 | x<<=m等于x=x <<m |
>>= | 右移位赋值 | x>>=m等于x=x >>m |
&= | 位与赋值 | x&=y等于x=x &y |
|= | 位或赋值 | x|=y等于x=x |y |
^= | 位异或赋值 | x^=y等于x=x ^y |
优先级表
优先级顺序 | 运算符 | 运算符名称 |
---|---|---|
1 | ** | 幂运算 |
2 | ~ + - | 按位反转 正数符号,负数符号 |
3 | * / // % | 算术运算符的乘 除 整除 取余 |
4 | + - | 算术运算符的加 减 |
5 | << >> | 位运算符的左移 右移 |
6 | & | 位运算符的与 |
7 | | ^ | 位运算符的或 异或 |
8 | == != <= >= < > | 比较运算符 |
9 | = += -= *= /= //= %= **= | 赋值运算符 |
10 | is is not | 身份运算符 |
11 | in not in | 成员运算符 |
12 | and or not | 逻辑运算符 |