Python的数据类型主 要分为 整型(数字类型) 字符串 列表 元组 字典 集合 布尔类型
按照有序无序分为:字符串 列表 元组(有序,可以通过下标访问) 数字 字典 集合(无序)
按照可变不可变分为: 列表 字典 集合(可变数据) 数字 字符串 元组(不可变数据)
使用内置函数type()可以查看数据的类型
一、整型
1、强制类型转换
可以将字符串类型转换为整型 a = int(input('请输入用户名:'));整型不可进行for循环 所以不能通过list()方法强制转化为列表
2、整型可以用到的方法
bit_length() 统计当前数字的二进制位数 例如:3 11 的二进制位数都为2
二、 字符串
字符串是用的最多的数据类型之一 ,它有很多的内置方法可以使用:使用成员运算符 "." 即可查看该字符串变量的所有方法
判断属性方法
istitle() 判断是否是标题(每个单词的首字母大写)
isaplha() 判断是否是字母
isdigit() isnumeric() 判断是否是数字
isdecimal() 判断是否是十进制数(用的比较多)
isidentifer() 判断是否是标识符
string = "黄小德123abc12@"
print(string.capitalize()) #首字母大写print(string.startswith(" ")) #以什么开头可以指明 起始位置,结束位置print(string.endswith("c")) #以什么结尾 可以指明 起始位置,结束位置print(string.find("a")) #寻找子序列 并返回开始的位置 默认从前往后找 可以指定寻找的范围print(string.count("1")) #从字符串中去寻找指定的字符出现的次数,可以指明 起始位置,结束位置 有范围的一般都是包前不包后print(string.index("b")) #返回索引
join()是字符串中的每一个元素按照指定的分隔符进行拼接
string = "黄小德123abc12@"string1= '+'.join(string)print(string1)
格式控制方法
format() 格式化 将字符串中的占位符替换为指定的值 有两种方式isalnum() 判断是否只是数字或者字母 返回布尔类型
center(20, '*') 整个字符的长度改为20 将内容居中 用指定的参数填充空白
ljust(20,'*')右边补充*
rjust(20, '*') 左边补充*
zfill(20) 默认填充0
expandtabs(20) 20个字符断句
大小写转换方法
lower() 转换为小写
upper()转换为大写
swapcase() 大小写转换
issupper() 是否全部大写
casefold() lower() 都可以变小写 但是casefold()的功能更加强大 它可以将很多未知的对应变小写
去除内容方法
lstrip() 去除左边的空格而且可以移除换行和制表
lstrip('x') 去除指定的内容
rstrip()
stip() 去除所有的空格
maketrans() 和 translate() 做对应关系的替换
v = 'sdfsadfgsdsdfg'm= str.maketrans('aeiou', '12345')
new_v=v.translate(m)print(new_v)
分割字符串方法
partitions() 分割成三部分
split() 分割
spilt('x',2) 分割的参数和次数
rsplit()
替换
replace('a', 'b') 用后面的替换前面的
字符串的索引、切片以及求长度函数
索引
string="hxd123"
for i inrange(len(string)):print(i)
切片
string="hxd456"
print(string[0:3]) #从前往后切片
print(string[2:-1]) #从后往前切片
求长度
string="45789"
print(len(string))
三、列表
列表的常用操作方法:
append([1,2]) 追加 把[1,2]当做一个整体追加到列表的末尾
clear() 清空
extend([1,2]) 扩展原来的列表 把[1,2]里面的每个元素遍历添加到列表的末尾 里面的参数必须是可迭代的对象
index(123) 返回123首次出现的位置
insert(5,123) 在第六位插入值123
ls = [1, 5, 8, "hxd", 'a', ['x', 'y', 's']]
ls.append("t")
ls.extend([99, 10])
ls.insert(2, "aa")print(ls.index(1))for i inls:print(i)
列表的删除方法
pop() 默认移除列表的最后一个元素 并且返回移除的元素
del a_list[1] 删除第二个元素
remove(123) 删除指定的元素
reverse() 反转
sort() 排序 sort(reverse=True) 倒序排列
四、元组
创建元祖的时候建议多加一个逗号;元组元素不能被修改 不能被增加或者删除;可以被for循环 可以迭代
列表和元组之可以转换 列表和字符串 字符串和元组之间都可以通过强制类型转换方法进行相互转换
列表 元组 字符串都是可迭代对象 可以通过for 循环访问
元祖的一级元素不可修改但是 元组里面元组的值可以进行修改
tu = (1,"hxd",'a',[1,5], )
五、字典
字典里面可以是任何类型的数值 字典里面的key 不能是字典 列表
info ={'k1':18,'k2': True,'k3': [11, [], (11,33), 22,{'k1':123,}
],'k4': (212, '123')
}
v= info['k3'][2][0]print(v)
字典常用的方法:
字典的键、值、键值对的获取
info.keys() #获取字典的键
info.values() #获取字典的值
info.get("name") #获取指定键的值
info.items() #获取键值对
info={"name": "hxd","sex": "male","age": 23,"address": "郑州","hobby": ["听歌", "看电影", "旅游", "羽毛球"]
}for i ininfo.keys():print(i)for i ininfo.values():print(i)for i ininfo.items():print(i)print(info.get("name"))
info.setdefault("salary", 10000)
info.popitem()
info2={"age": 24}
info.update(info2)
字典的删除
可以使用 del info[key]
pop() 指定删除的键值对并返回所删除的键值对
popitem() 随机删除键值对
字典设置默认值以及更新
setdefault('name', 'zhangsan') 设置值 如果已经存在不设置 获取当期key对应的值
如果不存在 设置新的值 获取当前key对应的值
update() 更新 如果已经存在就覆盖掉 如果不存在不就添加
fromkeys(['k1'],123) 根据序列创建字典 并指定统一的值
六、集合
集合:由不同元素组成 集合里面的元素无序只能存放数字字符串和元组(不可变得数据类型) 无序 元素可哈希
集合拥有自动去重的功能
集合的常用方法:
集合本身是可变的 如果定义为frozenset 则集合是不可变集合;使用set() 函数可以把其他类型的数据变成集合类型 set方法可以自动去掉重复的数据
add() 添加元素
update() 更新元素可以将两个集合合并 不会去重 可以传可迭代的多个值(元组 列表)
pop() 随机删除一个元素
remove() 删除指定元素 如果不存在会报错
clear() 清空集合
disgard() 如果不存在不会报错
issubset() 判断子集
isspuerset() 判断父集
集合的并交差:
并集 union |
交集 intersection &
差集 differ -
交叉补集 先做并集然后减去交集 symmetric_difference
s1 = {"hxd", 123, 'a', 666, '#'}
s2= {"123", 123, 'b', "#"}print(s1.union(s2)) #求两个集合的并集
print(s1.intersection(s2)) #求两个集合的交集
print(s1.difference(s2)) #求两个集合的差集