2.python基础——数据类型
python基础数据类型包括:int、float、字符串、列表、字典、元组、集合、布尔。选用合适的数据类型,可以让数据的存取更方便。
使用type() 可以获取数据的类型
1.int
python 中不存在长整型和短整形
类型转换:
int() 可以将纯数字的字符串转为int
进制转换
bin() 十进制转二进制
oct() 十进制转八进制
hex() 十进制转十六进制
其他进制转十进制:
int('0o13',8) //8转10
int('0b1011',16) //16转10
2.float
3.字符串 str
作用:记录描述性质的状态、名字、一段话
定义:用引号(‘ ’,’’ ’’, ’’’ ‘’’ , )
字符串可以相加,仅限str之间。不建议使用,因为效率极低
字符串可以和int 相乘,
str() 可以将其他任意类型转为字符串
字符串嵌套
方法1: 单双引号配合使用,外单内双,或反之
方法2: 使用转义符 例如 'my name is '刚刚'
常用方法
按照索引取值,可以正向和反向取值,只能取不能根据索引改
切片 ,步长需要和索引配合使用
msg = "hello world" res = msg[0:5] //从索引0开始取,到索引小于5的字符串 res = msg[0:5:2] //从索引0开始取,到索引小于5的字符串,步长为2 res = msg[5:0:-1] //从5开始取,到索引大于0的字符串,步长为1。 res = msg[::-1] //相当于把字符串倒过来
获取长度 len()
成员判断 int 、not in
判断一个字符串是否在另外一个字符串中strip()
默认移除左右两侧的空格
可以接受一个字符串作为参数
msg = "**shuta**" print(msg.strip('*')) //去掉两边的星号
切分 split()
可以接受两个参数:
第一个参数:把一个字符串按照分隔符进行分割,默认分割空格
第二个参数:切割次数
其他方法
strip lstrip,rstrip
去除左/右的字符串
lower,upper
转为大小写
startwith endwith
判断是否以某个字符串开头/结尾
format
split rsplit
从左/右开始切
join
将元素为纯字符串的列表拼接为字符串,
l = ['shuta','shuta1'] res = ':'.join(l)
replace
msg = 'shuta' res = msg.replace('a','u') //将a替换为u
isdigit
判断字符串是否为纯数字组成
不常用方法
4.列表
在【】内用逗号分隔开多个任意类型的值
按照位置存放多个值,索引从0开始
取值方式 : 列表【索引】
类型转换
list() 可以将能被for 循环的元素转为列表,list()的底层与for循环是一样的
对字典转换可以得到key的列表
内置方法
按照索引存取值,索引存在可以正反向取值。存取时,如果索引不存在则报错。
切片(顾头不顾尾,步长)
list1[:] 相当于浅拷贝
len(list1)
追加 append()
向列表的最后边添加元素
插入值 insert()
insert(index,value)
列表拼接
list1.extend(list2)
删除
通用的删除方法,单纯的删除,没有返回值
del list1[1]
pop()
不指定参数则默认删除最后一个值,返回删除的值
remove()
remove(value) 删除对应的值,返回none
list1.count(value) 统计元素出现的个数
list1.index(value) 返回查找元素的索引,找不到报错
list1.clear() 清空列表的元素
list1.reverse() 将列表反转
list1.sort(key,reverse) 默认从小到大排序,列表内必须是同种类型才能排序
如果想降序可以使用 list1.sort(reverse=True)
5. 元组 tuple
元组是一个不可变的列表,元组中元素对应的内存地址不能更改,如果有元素为列表类的,那么列表内的元素可以改动.
作用:按照索引位置存放多个值,只用于读不用于修改
定义: () 内用逗号隔开的任意类型多个元素
t = (1,1.3,'shuta') //
### 类型转换
tuple(value) 可以将字符串、列表、字典转为元祖类型
### 内置方法
按索引取值
切片
长度
in 、 not in
6.字典
dict(x=1,y=2,z=3)
dict1 = {'name':shuta,'email':'648949076'}
Key对应值,
key 必须为不可变类型,通常key为字符串类型,key 命名时一般对值具有描述性。
值可以为任意类型。
作用:存多个值,使每个值都有唯一的key与之对应
数据类型转换
方式1:
dict(list1)
list1的每个元素必须有两个值才能被转换,其值可以是列表、元祖
方式2:
keys = ['shuta1','shuta2','shuta3']
d = {}.fromkeys(keys,None)
内置方法
按照key存取
赋值时,如果key不存在则创建新值
长度
in、 not in
删除,包括 del 、pop()
pop()返回删除的值
popitem() 返回元组
keys()
python2中获取字典的key的列表,python3中获取容器
values()
python2中获取字典的value的列表,python3中获取容器
items()
python2中获取字典的key与value 元组的列表,python3中获取容器
clear() 清空
dict1.update(dict2) 用dict2更新dict1
get(key) 按照key取值,如果key不存在则返回None
dict1.setdefault(key,value) 如果key 不存在则设置value, 执行后会返回key对应的值
7.集合 set
定义
在{}内用逗号分隔开的多个元素,其内元素满足以下三个条件:
集合内元素必须为不可变类型
集合内的元素无序
集合内的元素没有重复的
set1 = {1,2}
set2 = set({1,2})
定义空集合:
set3 = set() //使用{} 定义的为空字典
类型转换
转换时会对元素进行去重,同时要注意元素需要为不可变类型
内置方法
取交集 set1&set2 set1.intersection(set2)
取并集 set1 | set2 set1.union(set2)
取差集 set1-set2 set1.difference(set2)
对称差集:取两个独有的元素 set1 ^ set2 set1.symmetric_difference(set2)
父子集 set1 > set2 返回true时,需要有包含关系 set1.issuperset(set2)
长度
成员运算
删除元素
set1.discard(value) value 不存在不报错
set1.remove(vallue) value 不存在则报错
更新
set1.update({1,2,3}) 不存在则加入
set1.difference_update({1,2,3})
set1.pop() 删除集合中的一个元素
set1.add(value) 添加value 到集合中
set1.isdisjoin(set2) 判断是否有交集
8.布尔类型
显示布尔:True False
隐式布尔: 所有数据类型,其中0 、None、空(空字符串、空列表、空字典)为假
使用 type(变量名) 函数可以查看变量的类型。