基本数据类型详解
# ########################################## str 字符串 ##########################################
# 1. capitalize 字符串首字母大写
# 自身不变,会生成一个新的值
# name = 'alex' # v = name.capitalize() # print(v) # print (name) 显示结果 Alex alex
2. 将所有大小变小写,lower,casefold牛逼,德语...
name = 'ALEX' v = name.casefold() print (v) print(name) name1 = 'ALEX' v1 = name.lower() print (v1) print (name) 显示结果 alex ALEX alex ALEX
3 . 文本居中
# 参数1: 表示总长度
# 参数2:空白处填充的字符(长度为1)
name = 'alex' v = name.center(20) print(v) v = name.center(20,'行') print(v) 显示结果 alex 行行行行行行行行alex行行行行行行行行
4. 表示传入之在字符串中出现的次数
# 参数1: 要查找的值(子序列)
# 参数2: 起始位置(索引)
# 参数3: 结束位置(索引)
name = "alexasdfdsafsdfasdfaaaaaaaa" v = name.count('a') print(v) v = name.count('df') print(v) v = name.count('df',12) print(v) v = name.count('df',0,15) print(v) 显示结果 12 3 2 2
5. 是否以xx结尾
name = 'alex' v1 = name.endswith('ex') print(v1) 显示结果 True
6. 是否以xx开头
name = 'alex' v2 = name.startswith('al') print(v2) 显示结果 True
7.encode欠
8. 找到制表符 ,进行替换(包含前面的值)
# PS:
name = "al e x alex uu kkk" v = name.expandtabs(20) print(v)
9.找到指定子序列的索引位置:不存在返回-1
name = 'alex' v = name.find('o') print(v) v = name.index('o') print(v)
10.字符串格式化
tpl = "我是:%s;年龄:%s;性别:%s" tpl = "我是:{0};年龄:{1};性别:{2}" v = tpl.format("李杰",19,'都行') print(v) tpl = "我是:{name};年龄:{age};性别:{gender}" v = tpl.format(name='李杰',age=19,gender='随意') print(v) tpl = "我是:{name};年龄:{age};性别:{gender}" v = tpl.format_map({'name':"李杰",'age':19,'gender':'中'}) print(v)
11. 是否是数字、汉子.
name = 'alex8汉子' v = name.isalnum() # 字,数字 print(v) # True v2 = name.isalpha()# print(v2)# False
12. 判断是否是数字
num = '②' v1 = num.isdecimal() # '123' v2 = num.isdigit() # '123','②' v3 = num.isnumeric() # '123','二','②' print(v1,v2,v3)
13. 是否是表示符
n = 'name' v = n.isidentifier() print(v)
14.是否全部是小写
name = "ALEX" v = name.islower() print(v) v = name.isupper() print(v)
15,.全部变大写,
name = 'alex' v = name.upper() # lower() print(v)
16.是否包含隐含的xx
name = "钓鱼要钓刀鱼, 刀鱼要到岛上钓" v = name.isprintable() print(v)
17.是否全部是空格
name = ' ' v = name.isspace() print(v)
18.元素拼接(元素字符串) *****
name = 'alex' v = "_".join(name) # 内部循环每个元素 print(v) name_list = ['海峰','杠娘','李杰','李泉'] v = "搞".join(name_list) print(v)
19. 左右填充
center,rjust,ljust name = 'alex' v = name.rjust(20,'*') print(v)
20. 对应关系 + 翻译
21. 对应关系 + 翻译 m = str.maketrans('aeiou','12345') # 对应关系 name = "akpsojfasdufasdlkfj8ausdfakjsdfl;kjer09asdf" v = name.translate(m) print(v)
21. 分割,保留分割的元素
content = "李泉SB刘康SB刘一" v = content.partition('SB') # partition print(v)
22. 替换
content = "李泉SB刘康SB刘浩SB刘一" v = content.replace('SB','Love') print(v) v = content.replace('SB','Love',1) print(v)
23,移除空白, , ,自定义
name = 'alex ' v = name.strip() # 空白, , print(v)
24. 大小写转换
name = "Alex" v = name.swapcase() print(v)
25. 填充0
name = "alex" v = name.zfill(20) print(v) v1 = 'alex' v2 = 'eric' v = v1 + v2 # 执行v1的__add__功能 print(v)
###### 字符串功能总结:
# name = 'alex'
# name.upper()
# name.lower()
# name.split()
# name.find()
# name.strip()
# name.startswith()
# name.format()
# name.replace()
# "alex".join(["aa",'bb'])
###### 额外功能:
# name = "alex"
# name[0]
# name[0:3]
# name[0:3:2]
# len(name)
# for循环,每个元素是字符
# ########################################## int 整数 ##########################################
1. 当前整数的二进制表示,最少位数
age = 4 # 100 print(age.bit_length())
2. 获取当前数据的字节表示
age = 15 v = age.to_bytes(10,byteorder='big') v = age.to_bytes(10,byteorder='little') print(v) 00000000 00001111 -> 15
# ########################################## bool 布尔值 ##########################################
# v = 0 # 1,-1
# v = ""
# v = []
# --> 空内容:False
# ########################################## list 列表 ##########################################
# ## int=xx; str='xxx' list='xx'
# user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
# PS:
# name = 'alex'
# 执行功能;
# 1.追加
user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型 user_list.append('刘铭') print(user_list)
2. 清空
user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型 user_list.clear() print(user_list)
3. 拷贝(浅拷贝)
user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型 v = user_list.copy() print(v) print(user_list)
4. 计数
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 v = user_list.count('李泉') print(v)
5. 扩展原列表
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 user_list.extend(['郭少龙','郭少霞']) print(user_list)
6. 查找元素索引,没有报错
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 v = user_list.index('李海') print(v)
7. 删除并且获取元素 - 索引
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 v = user_list.pop(1) print(v) print(user_list)
8. 删除 - 值
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 user_list.remove('刘一') print(user_list)
9. 翻转
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型 user_list.reverse() print(user_list)
10. 排序: 欠参数
nums = [11,22,3,3,9,88] print(nums) 排序,从小到大 nums.sort() print(nums) 从大到小 nums.sort(reverse=True) print(nums)
###### 额外:
user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] user_list[0] user_list[1:5:2] del user_list[3] for i in user_list: print(i) user_list[1] = '姜日天' user_list = ['李泉','刘一','李泉','刘康','豆豆',['日天','日地','泰迪'],'小龙'] li = ['eric','alex','tony'] v = len(li) print(v) li.append('seven') print(li) li.insert(0,'Tony') print(li) li[1] = 'Kelly' li.remove('eric') print(list) v = li.pop(1) print(v) print(li) del li[2] del li[0:2] # 0 =<x < 2 print(li) li.reverse() print(li) for i in li: print(i)
# ######################################### 强插:range,enumrate #########################################
1. 请输出1-10
# 2.7: 立即生成所有数字
range(1,11) # 生成 1,23,,4,56.10
3.x: 不会立即生成,只有循环迭代时,才一个一个生成
for i in range(1,11): # print(i) for i in range(1,11,2): # print(i) for i in range(10,0,-1): # print(i)
1. 3.x 不会立生成,迭代之后才一个一个创建;
"""
- 2.7:
range()
xrange() 不会立生成,迭代之后才一个一个创建;
- 3.x
range() 不会立生成,迭代之后才一个一个创建;
"""
# 2. range: 三个参数
#
li = ['eric','alex','tony'] # range,len,li循环 for i in range(0,len(li)): ele = li[i] print(ele) li = ['eric','alex','tony'] for i in li: print(i) for i in range(0,len(li)): print(i+1,li[i]) enumerate额外生成一列有序的数字 li = ['eric','alex','tony'] for i,ele in enumerate(li,1): print(i,ele) v = input('请输入商品序号:') v = int(v) item = li[v-1] print(item)
# ######################################### tuple:元组,不可被修改的列表;不可变类型 #########################################
# 1. 获取个数
user_tuple = ('alex','eric','seven','alex') v = user_tuple.count('alex') print(v)
# 2.获取值的第一个索引位置
v = user_tuple.index('alex') print(v)
####### 额外:
user_tuple = ('alex','eric','seven','alex') for i in user_tuple: print(i) v = user_tuple[0] v = user_tuple[0:2] print(v) user_tuple = ('alex','eric','seven',['陈涛','刘浩','赵芬芬'],'alex') user_tuple[0] = 123 x user_tuple[3] = [11,22,33] x user_tuple[3][1] = '刘一' print(user_tuple) li = ['陈涛','刘浩',('alex','eric','seven'),'赵芬芬'] ****** 元组最后,加逗号 ****** li = ('alex',) print(li)
# ######################################### dict:字典: 可变类型 #########################################
# 1. 清空、
dic = {'k1':'v1','k2':'v2'} dic.clear() print(dic)
2. 浅拷贝
dic = {'k1':'v1','k2':'v2'} v = dic.copy() print(v)
3. 根据key获取指定的value;不存在不报错
dic = {'k1':'v1','k2':'v2'} v = dic.get('k1111',1111) print(v) v = dic['k1111'] print(v)
4. 删除并获取对应的value值
dic = {'k1':'v1','k2':'v2'} v = dic.pop('k1') print(dic) print(v)
5. 随机删除键值对,并获取到删除的键值
dic = {'k1':'v1','k2':'v2'} v = dic.popitem() print(dic) print(v) k,v = dic.popitem() # ('k2', 'v2') print(dic) print(k,v) v = dic.popitem() # ('k2', 'v2') print(dic) print(v[0],v[1])
6. 增加,如果存在则不做操作
dic = {'k1':'v1','k2':'v2'} dic.setdefault('k3','v3') print(dic) dic.setdefault('k1','1111111') print(dic)
7. 批量增加或修改
dic = {'k1':'v1','k2':'v2'} dic.update({'k3':'v3','k1':'v24'}) print(dic) dic = dict.fromkeys(['k1','k2','k3'],123) print(dic) dic = dict.fromkeys(['k1','k2','k3'],123) dic['k1'] = 'asdfjasldkf' print(dic) dic = dict.fromkeys(['k1','k2','k3'],[1,]) { k1: 123123213, # [1,2] k2: 123123213, # [1,] k3: 123123213, # [1,] } dic['k1'].append(222) print(dic)
# ########## 额外:
# - 字典可以嵌套
# - 字典key: 必须是不可变类型
dic = { 'k1': 'v1', 'k2': [1,2,3,], (1,2): 'lllll', 1: 'fffffffff', 111: 'asdf', } print(dic) key: - 不可变 - True,1 dic = {'k1':'v1'} del dic['k1']
# 布尔值:
# 1 True
# 0 False
#
# bool(1111)
# ##################################### set,集合,不可重复的列表;可变类型 #####################################
# s1 = {"alex",'eric','tony','李泉','李泉11'}
# s2 = {"alex",'eric','tony','刘一'}
1.s1中存在,s2中不存在
v = s1.difference(s2)
print(v)
#### s1中存在,s2中不存在,然后对s1清空,然后在重新复制
s1.difference_update(s2)
print(s1)
2.s2中存在,s1中不存在
v = s2.difference(s1)
print(v)
3.s2中存在,s1中不存在
s1中存在,s2中不存在
v = s1.symmetric_difference(s2)
print(v)
4. 交集
v = s1.intersection(s2)
print(v)
5. 并集
v = s1.union(s2)
print(v)
6. 移除
s1 = {"alex",'eric','tony','李泉','李泉11'} s1.discard('alex') print(s1) s1 = {"alex",'eric','tony','李泉','李泉11'} s1.update({'alex','123123','fff'}) print(s1)
# ##### 额外:
s1 = {"alex",'eric','tony','李泉','李泉11'} for i in s1: print(i) s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)} for i in s1: print(i)