基本数据类型详解
一、str 字符串
1、capitalize 字符串首字母大写
自身不变,会生成一个新的值
1 name = ‘zhangsan‘ 2 new_name = name.capitalize() 3 print(name) 4 print(new_name) 5 6 输出内容: 7 zhangsan 8 Zhangsan
2、casefold 将所有大写变小写,casefold可以使任何语言的大写变小写
1 name = ‘SunChenGuang‘ 2 new_name = name.casefold() 3 print(name) 4 print(new_name) 5 6 输出内容: 7 SunChenGuang 8 sunchenguang
3、lower 将所有大写变小写,lower只可以改变英文
1 name = ‘SunChenGuang‘ 2 new_name = name.lower() 3 print(name) 4 print(new_name) 5 6 输出内容: 7 SunChenGuang 8 sunchenguang
4、center 文本居中
# 参数1: 表示总长度
# 参数2:空白处填充的字符(长度为1)
1 name = ‘SunChenGuang‘ 2 new_name = name.center(20,‘#‘) 3 print(name) 4 print(new_name) 5 6 输出内容: 7 SunChenGuang 8 ####SunChenGuang#####
5、count 统计传入值在字符串中出现的次数
# 参数1: 要查找的值(子序列)
# 参数2: 起始位置(索引)
# 参数3: 结束位置(索引)
1 neme = ‘SunChenGuang‘ 2 v1 = neme.count(‘g‘) 3 v2 = neme.count(‘g‘,0,6) 4 v3 = neme.count(‘g‘,3,9) 5 print(neme) 6 print(v1) 7 print(v2) 8 print(v3) 9 10 输出内容: 11 SunChenGuang 12 3 13 1 14 2
6、endswith 是否以xx结尾,返回值是True或False
1 name = ‘sunchegnuang‘ 2 new_name = name.endswith(‘ong‘) 3 print(name) 4 print(new_name) 5 6 输出内容: 7 sunchenguang 8 True
7、startswith 是否以xx开头,返回值是True或False
1 name = ‘sunchenguang‘ 2 new_name = name.startswith(‘gu‘) 3 print(name) 4 print(new_name) 5 6 输出内容: 7 sunchenguang 8 True
8、expandtabs 找到制表符\t,进行替换(包含前面的值)
# 参数默认是8
1 name = ‘sun\tchen\tguang\nsun\tchen\tlguang‘ 2 new_name = name.expandtabs(10) 3 print(name) 4 print(new_name) 5 6 输出内容: 7 sun chen guang 8 sun chen guang 9 sun chen guang 10 sun chen guang
9、 找到指定子序列的索引位置
find:存在返回索引位置,不存在返回 -1
index:存在返回索引位置,不存在 报错
1 name = ‘sunchegnaung‘ 2 v1 = name.find(‘c‘) 3 v2 = name.index(‘s‘) 4 v3 = name.find(‘x‘) 5 # v4 = name.index(‘x‘) 6 print(v1,v2,v3) 7 8 输出内容: 9 3 3 -1
10、字符串格式化
% :根据百分号
1 v1 = ‘姓名:%s;年龄:%s;性别:%s‘ 2 new_v1 = v1%(‘孙晨光‘,20,‘男‘) 3 print(new_v1) 4 5 输出内容: 6 姓名:孙晨光;年龄:20;性别:男
format :根据下标
1 v2 = ‘姓名:{0};年龄:{1};性别:{2}‘ 2 new_v2 = v2.format(‘孙晨光‘,20,‘男‘) 3 print(new_v2) 4 5 输出内容: 6 姓名:孙晨光;年龄:20;性别:男
format_map :根据键值对
1 v3 = ‘姓名:{name};年龄:{age};性别:{gender}‘ 2 new_v3 = v3.format_map({‘name‘:‘张三‘,‘age‘:20,‘gender‘:‘男‘}) 3 print(new_v3) 4 5 输出内容: 6 姓名:张三;年龄:20;性别:男
11、isalnum 判断是否是数字、字母、汉字
# 数字、字母、汉字 True
# 特殊符号 False
1 name1 = ‘水电费12‘ 2 name2 = ‘水电费12‘ 3 v1 = name1.isalnum() 4 v2 = name2.isalnum() 5 print(v1,v2) 6 7 输出内容: 8 True False
12、判断是否是数字
isdecimal # ‘123‘
isdigit # ‘123‘,‘②‘
isnumeric # ‘123‘,‘二‘,‘②‘
1 num1 = "123" 2 num2 = "②" 3 num3 = "二" 4 v1 = num1.isdecimal() # ‘123‘ 5 v2 = num2.isdigit() # ‘123‘,‘②‘ 6 v3 = num3.isnumeric() # ‘123‘,‘二‘,‘②‘ 7 print(v1,v2,v3) 8 9 输出内容: 10 True True True
13、isidentifier 判断变量名是否合法
1 name1 = ‘guoshaolong1‘ 2 name2 = ‘1guoshaolong‘ 3 v1 = name1.isidentifier() 4 v2 = name2.isidentifier() 5 print(v1,v2) 6 7 输出内容: 8 True False
14、islower 判断是否全部是小写
1 name1 = ‘zhangsan‘ 2 name2 = ‘Zhangsan‘ 3 v1 = name1.islower() #判断是否全部是小写 4 v2 = name2.islower() #判断是否全部是小写 5 print(v1,v2) 6 7 输出内容: 8 True False
isupper 判断是否全部是大写
1 name3 = ‘ZHANGSAN‘ 2 name4 = ‘zhangSAn‘ 3 v3 = name3.isupper() #判断是否全部是大写 4 v4 = name4.isupper() #判断是否全部是大写 5 print(v3,v4) 6 7 输出内容: 8 True False
15、upper 全部变大写
1 name = ‘sunchenguang‘ 2 new_name = name.upper() 3 print(name) 4 print(new_name) 5 6 输出内容: 7 sunchenguang 8 ZHANGSAN
lower 全部变小写
1 name = ‘ZHANGSAN‘ 2 new_name = name.lower() 3 print(name) 4 print(new_name) 5 6 输出内容: 7 ZHANGSAN 8 zhangsan
16、isprintable 是否包含隐含的\n \t
#不包含返回True ,包含返回False
1 name1 = ‘zhangsan‘ 2 name2 = ‘zhang\nsan‘ 3 v1 = name1.isprintable() 4 v2 = name2.isprintable() 5 print(v1,v2) 6 7 输出内容: 8 True False
17、isspace 是否全部是空格
1 name = ‘ ‘ 2 v = name.isspace() 3 print(v) 4 5 输出内容: 6 True
18、元素拼接(元素字符串) 重要程度五颗星*****
1 name = ‘zhangsan‘ 2 v1 = "_".join(name) 3 print(v1) 4 5 name_list = [‘张三‘,‘李四‘,‘王五‘] 6 v2 = "*".join(name_list) 7 print(v2) 8 9 输出内容: 10 z_h_a_n_g_s_a_n 11 张三*李四*王五
19、左右填充
center 文本居中(详见第4个)
rjust 右填充
ljust 左填充
1 name = ‘zhangsan‘ 2 v1 = name.rjust(20 ,"*") #右填充 3 v2 = name.ljust(20 ,"*") #左填充 4 print(v1) 5 print(v2) 6 7 输出内容: 8 *********zhangsan 9 zhangsan*********
20、对应关系 + 翻译
1 m = str.maketrans(‘aeiou‘,‘12345‘) 2 name = ‘abcdefghijklmnopqrstuvwxyz‘ 3 v = name.translate(m) 4 print(v) 5 6 输出内容: 7 1bcd2fgh3jklmn4pqrst5vwxyz
21、partition 分割,保留分割的元素
1 name = ‘zhang.san.si‘2 v = name.partition(‘.‘) 3 print(v) 4 5 输出内容: 6 (‘zhang‘, ‘.‘, ‘san.si‘)
22、replace 替换
1 name = ‘zhang.san.si‘ 2 v1 = name.replace(‘.‘,‘*‘) 3 v2 = name.replace(‘.‘,‘*‘,1) 4 print(v1) 5 print(v2) 6 7 输出内容 : 8 zhang*san*si 9 zhang*san.si
23、strip 移除空白,\n,\t
1 name = ‘ zhangsan\t‘ 2 v = name.strip() 3 print(name) 4 print(v) 5 6 输出内容: 7 zhangsan 8 zhangsan
24、swapcase 大小写转换
1 name = ‘ZhangSan‘ 2 v = name.swapcase() 3 print(name) 4 print(v) 5 6 输出内容: 7 ZhangSan 8 zHANGsAN
25、zfill 往前面填充0
1 name = ‘zhangsan‘ 2 v = name.zfill(20) 3 print(v) 4 5 输出内容: 6 000000000zhangsan
26、encode 转换成字节
1 name = ‘张三‘ 2 v1 = name.encode(encoding=‘utf-8‘) 3 v2 = name.encode(encoding=‘gbk‘) 4 print(v1) 5 print(v2) 6 7 输出内容: 8 b‘\xe9\x83\xad\xe5\xb0\x91\xe9\xbe\x99‘ 9 b‘\xb9\xf9\xc9\xd9\xc1\xfa‘
二、int 整数
1、bit_length 当前整数的二进制表示,最少位数
1 age1 = 1 2 age2 = 10 3 age3 = 100 4 print(age1.bit_length()) 5 print(age2.bit_length()) 6 print(age3.bit_length()) 7 8 输出内容: 9 1 10 4 11 7
2、to_bytes 获取当前数据的字节表示
1 age = 20 2 v1 = age.to_bytes(10,byteorder=‘big‘) 3 v2 = age.to_bytes(10,byteorder=‘little‘) 4 print(v1) 5 print(v2) 6 7 输出内容: 8 b‘\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14‘ 9 b‘\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00‘
三、bool 布尔值
1、只有True或False
1 v1 = 0 2 v2 = 1 3 v3 = -1 4 v4 = ‘‘ 5 v5 = [] 6 print(bool(v1)) 7 print(bool(v2)) 8 print(bool(v3)) 9 print(bool(v4)) 10 print(bool(v5)) 11 12 输出内容: 13 False 14 True 15 True 16 False 17 False
四、list 列表
1、append 追加
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.append(‘老五‘) 3 print(user_list) 4 5 输出内容: 6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老五‘]
2、clear 清空
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.clear() 3 print(user_list) 4 5 输出内容: 6 []
3、copy 拷贝(浅拷贝)
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.copy() 3 print(user_list) 4 print(v) 5 6 输出内容: 7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘] 8 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘]
4、count 计数
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘,‘老三‘] 2 v = user_list.count(‘老三‘) 3 print(user_list) 4 print(v) 5 6 输出内容: 7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老三‘] 8 2
5、extend 扩展原列表
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.extend([‘郭少龙‘,‘少龙‘]) 3 print(user_list) 4 5 输出内容: 6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘郭少龙‘, ‘少龙‘]
6、index 查找元素索引,不存在则报错
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.index(‘老大‘) 3 print(v) 4 5 输出内容: 6 0
7、pop 删除并且获取元素 - 根据索引删除
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.pop(1) 3 print(v) 4 print(user_list) 5 6 输出内容: 7 老二 8 [‘老大‘, ‘老三‘, ‘老四‘]
8、remove 删除 - 根据值删除
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.remove(‘老二‘) 3 print(user_list) 4 5 输出内容: 6 [‘老大‘, ‘老三‘, ‘老四‘]
9、reverse 翻转
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.reverse() 3 print(user_list) 4 5 输出内容: 6 [‘老四‘, ‘老三‘, ‘老二‘, ‘老大‘]
10、sort 排序
1 正序: 2 nums = [5,4,3,2,6,10,7] 3 nums.sort() 4 print(nums) 5 6 输出内容: 7 [2, 3, 4, 5, 6, 7, 10] 8 9 10 倒序: 11 nums = [5,4,3,2,6,10,7] 12 nums.sort(reverse=True) 13 print(nums) 14 15 输出内容: 16 [10, 7, 6, 5, 4, 3, 2]
11、补充内容:range
1、输出1-10
1 for i in range(1,11): 2 print(i) 3 4 输出内容: 5 1 6 2 7 3 8 4 9 5 10 6 11 7 12 8 13 9 14 10
2、输出1-10 奇数
1 for i in range(1,11,2): 2 print(i) 3 4 输出内容: 5 1 6 3 7 5 8 7 9 9
3、倒序输出10-1
1 for i in range(10,0,-1): 2 print(i) 3 4 输出内容: 5 10 6 9 7 8 8 7 9 6 10 5 11 4 12 3 13 2 14 1
4、输出列表内容+序号
1 name = [‘张三‘,‘李四‘,‘王五‘] 2 for i in range(0,len(name)): 3 print(i+1,name[i]) 4 5 输出内容: 6 1 张三 7 2 李四 8 3 王五
12、补充内容:enumerate 额外生成一列有序的数字
1 name = [‘张三‘,‘李四‘,‘王五‘] 2 for i,ele in enumerate(name,1): 3 print(i,ele) 4 5 输出内容: 6 1 张三 7 2 李四 8 3 王五
五、tuple:元组(不可被修改的列表;不可变类型)
# 元组如果只有一个值,需要在最后加逗号
1、count 获取个数
1 user_tuple = (‘张三‘,‘李四‘,‘王五‘,‘张三‘,) 2 v = user_tuple.count(‘张三‘) 3 print(v) 4 5 输出内容: 6 2
2、index 获取值的第一个索引位置
1 user_tuple = (‘张三‘,‘李四‘,‘王五‘,‘张三‘,) 2 v = user_tuple.index(‘张三‘) 3 print(v) 4 5 输出内容: 6 0
六、dict:字典
1、clear 清空
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.clear() 3 print(dic) 4 5 输出内容: 6 {}
2、copy 浅拷贝
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v = dic.copy() 3 print(dic) 4 print(v) 5 6 输出内容: 7 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} 8 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
3、get 根据key获取指定的value;不存在不报错
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v1 = dic.get(‘k111‘,‘111‘) 3 print(v1) 4 5 输出内容: 6 111
4、pop 删除并获取对应的value值
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v1 = dic.pop(‘k1‘) 3 print(v1) 4 5 输出内容: 6 v1
5、popitem 随机删除键值对,并获取到删除的键值
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v = dic.popitem() 3 print(v) 4 print(dic) 5 6 输出内容: 7 (‘k2‘, ‘v2‘) 8 {‘k1‘: ‘v1‘}
6、setdefault 增加,如果存在则不做操作
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.setdefault(‘k3‘,‘v3‘) 3 print(dic) 4 5 输出内容: 6 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘}
7、update 批量增加或修改
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.update({‘k3‘:‘v3‘,‘k1‘:‘v33333‘}) 3 print(dic) 4 5 输出内容: 6 {‘k2‘: ‘v2‘, ‘k1‘: ‘v33333‘, ‘k3‘: ‘v3‘}
七、set,集合(不可重复的列表;可变类型)
1、s1中存在,s2中不存在
1 s1 = {"a",‘b‘,‘c‘,‘d‘,‘e‘} 2 s2 = {"a",‘b‘,‘c‘,‘d‘} 3 v = s1.difference(s2) 4 print(v) 5 #### s1中存在,s2中不存在,然后对s1清空,然后在重新复制 6 s1.difference_update(s2) 7 print(s1) 8 9 输出内容: 10 {‘e‘} 11 {‘e‘}
2、s2中存在,s1中不存在
1 s1 = {"a",‘b‘,‘d‘,‘e‘} 2 s2 = {"a",‘b‘,‘c‘,‘d‘} 3 v = s2.difference(s1) 4 print(v) 5 6 输出内容: 7 {‘c‘}