首页 > 代码库 > 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数据类型