首页 > 代码库 > python数据类型
python数据类型
第二节课
今天主要讲了数据类型
分为str字符串、int整数、字典、列表、集合、元组
# ########################################## str 字符串 ###############################################
#1、字符串首字母大写capitalize
# name = ‘liuming‘
# v = name.capitalize() #设置生成一个新的值
# print(name) #字符串本身不会变
# print(v) #新的值变化
# 2、字符串所有大写变小写casefold
# name = ‘LiuMing‘
# v =name.casefold()
# print(v)
#3、所有大写变小写
# name = "LiuMing"
# v=name.lower()
# print(v)
#4、设置长度,并文本居中
#参数1:表示中长度
#参数2:空白处填充的字段(长度只能为1)
# name = ‘liuming‘
# v = name.center(15,‘-‘)
# print(v)
#5、表示转入值在字符串中出现的次数
#参数1:要查找的值(子序列)
#参数2:起始位置(索引)
#参数3:结束位置(索引)
# name = ‘alexliumangnishausaisha‘
# v = name.count(‘a‘)
# print(v)
# v = name.count(‘li‘,12) #起始位置
# print(v)
# v = name.count(‘a‘,0,18) #结束位置
# print(v)
#6、是否以xx结尾
# name = ‘liuming‘
# v = name.endswith(‘ng‘) #正确返回True,错误返回False
# print(v)
#7、是否以xx开头
# name = ‘liuming‘
# v = name.startswith(‘lb‘) #正确返回True,错误返回False
# print(v)
#8、转换成字节
# name =‘刘铭‘
# v1 = name.encode(encoding=‘utf-8‘) #指定编码
# v2 = name.encode(encoding=‘gbk‘) #指定编码
# print(v1,v2)
#9、找到制表符\t进行替换(包含开头的值),根据制表符,自动生成表格(\n换行制表)
# name = ‘liu\tming\tal\nex\twu\tpei‘
# v = name.expandtabs(30) #指定宽度
# print(v)
#10、找到指定子序列的索引位置:不存在返回-1
# name = ‘liumingalex‘ #不存在返回-1
# v = name.find(‘q‘)
# print(v)
# v = name.index(‘o‘) #不存在则报错
# print(v)
#11、字符串格式化
# i = ‘我叫:%s;年龄:%s;性别:%s‘
# v = i%(‘刘铭‘,19,‘男‘) #使用占位符格式化字符串
# print(v)
# i = ‘我叫:{0};年龄:{1};性别:{2}‘
# v = i.format(‘刘铭‘,19,‘男‘) #使用format格式化字符串(字符串位置)
# print(v)
# i = ‘我叫:{name};年龄:{age};性别:{gender}‘
# v = i.format_map({‘name‘:‘刘铭‘,‘age‘:19,‘gender‘:‘那‘}) #使用字典格式化字符串
# print(v)
#12、是否是数字、汉字
# name = ‘alex8汉字‘
# v =name.isalnum() #允许有数字
# print(v)
# v2 =name.isalpha() #不允许有数字
# print(v2)
#13、判断是否是数字
# num =‘②123二‘
# v1 = num.isdecimal() #可以识别‘123‘
# v2 = num.isdigit() #可以识别‘123‘,‘②‘
# v3 = num.isnumeric() #可以识别‘123‘,‘②‘,二
# print(v1,v2,v3)
#14、是否是标识符
# n = ‘name‘
# v = n.isidentifier()
# print(v)
#15是否全部是小写
# name = ‘LMSlns‘
# v =name.islower() #是否全部是小写
# print(v)
# v = name.isupper() #是否全部是大写
# print(v)
#16、全部变大写
# name = ‘liuming‘
# v = name.upper() #字符串全部变大写,lower()全部变小写
# print(v)
#17、是否包含隐藏的xx
# name = ‘二狗二狗二狗\nsbsbsbs‘
# v = name.isprintable()
# print(v)
#18、是否全部是空格
# name = ‘ ‘
# v =name.isspace()
# print(v)
#19、元素拼接(元素字符串)*****
# name = ‘alex‘
# v = ‘_‘.join(name) #指定拼接字符
# print(v)
# name_list = [‘alex‘,‘liuming‘,‘liukang‘]
# v =‘说‘.join(name_list)
# print(v)
#20、左右填充
#中center左rjust右ljust
# name = ‘alex‘
# v =name.center(12,‘-‘)
# print(v)
# v =name.rjust(12,‘*‘)
# print(v)
# v =name.ljust(13,‘$‘)
# print(v)
#21、对应关系+翻译
# m = str.maketrans(‘aeojj‘,‘12344‘) #对应关系
# name = "asdkahkjfhkjsh123hkj;asdsfjjjcnnn"#讲对应关系的字母翻译为数字
# v = name.translate(m)
# print(v)
#22、分割保留分割的元素
# name = ‘刘铭SB李SB进‘
# v = name.partition(‘SB‘)
# print(v)
#23、替换
# name = ‘刘铭SB李SB进‘
# v =name.replace(‘SB‘,‘hehe‘) #把SB改成hehe
# print(v)
# v = name.replace(‘SB‘,‘heh‘,1) #把第一个SB改成heh
# print(v)
#24.移除空白,\n\t,自定义
# name = ‘alex\t\n‘
# v =name.strip()
# print(v)
#25.大小写转换
# name = ‘AlesX‘
# v = name.swapcase()
# print(v)
#26.填充
# name = ‘alex‘
# v = name.zfill(45) #指定填充的个数
# print(v)
#
####字符串总结
name= ‘liuming\t‘
name.capitalize() #字符串首字母大写
name.casefold() #所有大写变小写
name.lower() #所有大写变小写
name.center(20,‘-‘) #文本居中,20指定宽度,-指定填充
name.count(‘u‘,1,6) #查找值,u为要查找的值,1字符串位置开头,6字符串结尾
name.startswith(‘li‘) #查询以xx开头
name.endswith(‘ng‘) #查询以xx结尾
name.expandtabs(20) #找到制表符\t进行替换制作表格(包含前面的值)
name.format_map({‘name‘:‘alex‘}) #字符串格式化,根据字典
name.format(‘liuming‘) #字符串格式化
name.isalnum() #允许有数字
name.isalpha() #不允许有数字
name.isdecimal() #是否有数字可以识别123
name.isdigit() #是否有数字可以识别123,②
name.isnumeric() #是否有数字可以识别123,二,②
name.isidentifier() #是否是标识符
name.islower() #是否全部是小写
name.isupper() #是否全部是大写
name.upper() #全部变大写
name.lower() #全部变小写
name.isprintable() #是否包含隐藏的xx
name.isspace() #是否全部是空格
‘_‘.join(name) #元素拼接
name.rjust(20,‘-‘) #左填充,20指定宽度,-填充的东西
name.ljust(20,‘-‘) #右填充,20指定宽度,-填充的东西
#对应关系+翻译
m = str.maketrans(‘aeojj‘,‘12344‘) #对应关系
name = "asdkahkjfhkjsh123hkj;asdsfjjjcnnn"#讲对应关系的字母翻译为数字
v = name.translate(m) #讲对应关系的字母翻译为数字
name.partition(‘um‘) #分割,保留分割的元素,根据um分割
name.replace(‘um‘,‘SB‘,1) #替换,um替换为SB,1指定位置替换
name.strip() #移除空白\t\n
name.swapcase() #大小写转换
name.zfill(20) #填充0 ,20指定宽度
len(name) #测宽度
# ########################################## int 整数 ###############################################
#1.当前整数的二进制表示,最少位数
# age = 4 # 001
# print(age.bit_length())
# #获取当前数据的字节表示
# age = 15
# v1 =age.to_bytes(10,byteorder=‘big‘) #10进制,从右往左
# v2 =age.to_bytes(10,byteorder=‘little‘) #10进制,从左
# print(v1,v2)
# ########################################## bool 布尔值 ##########################################
# v = 0 #True
# v = "" --> #空内容:False
# v = []--> #空内容:False
# ########################################## list 列表 ##########################################
#列表为可变类型
user_list = [‘刘铭‘,‘李‘,‘金‘,‘王五‘,‘李‘]
#1.追加
# user_list.append(‘赵四‘) #在最后追加赵四
# print(user_list)
#2.清空
# user_list.clear() #清空表格内容
# print(user_list)
#3.拷贝(浅拷贝)
# v = user_list.copy() #拷贝到v
# print(v)
# print(user_list)
#4.计数
# v = user_list.count(‘李‘) #计算列表中有几个李
# print(v)
# print(user_list)
#5.扩展原列表
# user_list.extend([‘里护额‘,‘alex‘]) #写新表扩展到之前表格里
# print(user_list)
#6.查找元素索引,找不到报错
# v =user_list.index(‘李‘)
# print(v)
#7.删除并获取元素 索引
# v =user_list.pop(1) #删除位置为1的值
# print(v)
# print(user_list)
#8.删除
# user_list.remove(‘李‘)
# print(user_list)
#9.翻转(倒序)
# user_list.reverse()
# print(user_list)
#10.排序
# nums =[11,33,22,44,1,2]
# 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-10
# 3.x: 不会立即生成,只有循环迭代时,才一个一个生成
# for i in range(1,11): #使用for循环生成1-10
# print(i)
# for i in range(1,11,2): # 生成1-10,2为不长生成 1 3 5 7
# 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)
# #######列表总结
# user_list = [‘李泉‘,‘刘一‘,‘刘康‘,‘豆豆‘,‘小龙‘]
# user_list.append(‘刘i‘) #追加
# user_list.clear() #清空表
# v =user_list.copy() #浅拷贝
# v =user_list.count(‘刘一‘) #计数
# user_list.extend([‘是的‘,‘阿斯顿‘]) #扩展原列表
# v =user_list.index(‘豆豆‘) #查找索引,找不到报错
# v =user_list.pop(‘1‘) #删除并获取元素
# user_list.remove(‘豆豆‘) #删除
# user_list.reverse() #翻转
# user_list.sort() #排序从小到大
# user_list.sort(reverse=True) #排序从大到小
# user_list[1:5:2] #索引从1-5,2不常
# del user_list[2] #删除
# v= len(user_list) #统计长度
# user_list.insert(1,‘tony‘) #插入
# ######################################### 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)
# #####字典总结
dic ={‘k1‘:‘v1‘,‘k2‘:‘v2‘}
dic.clear() #清空
v=dic.copy() #浅拷贝
v=dic.get(‘keee‘,111) #根据key获取指定的value,不存在不报错
dic.pop(‘k1‘) #删除并获取删除的键值
dic.setdefault(‘k3‘,‘v3‘)#增加,如果存在则不做操作
dic.update({‘k3‘:‘v3‘,‘k4‘:‘v4‘})#批量增加或修改
del dic[‘k1‘] #删除
# ##################################### 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)
本文出自 “linux、win运维知识” 博客,请务必保留此出处http://liuming66.blog.51cto.com/10684323/1923940
python数据类型