【python】基本数据类型的常用功能
一丶基本数据类型的常用功能:
1丶整数,int
a.加法运算
#n1=123
#n2=456
#print(n1+n2)
↓相当于调用下面的方法
#print(n1.__add__(n2))
b.获取可表示的二进制最短位数
n1=4#00000100
res==n1.bit_length()
print(res)
2丶字符串(str)
一,字符串索引
s='abcdefg' print(s[0]) #结果为a print(s[1]) #结果为b print(s[2]) #结果为c print(s[3]) #结果为d print(s[4]) #结果为e
二,切片
第一种形式:
s="feng" #s[1:3]的意思是因为字符的索引是从0开始的,它这个的意思是提取从索引为1的到索引为3之间的字符 print(s[1:3])#结果为en
第二种形式:
strr="feng"
print(strr[0:4:2])#结果为:fn
#切片的第三个数字2的意思是在0-4的区间中间隔2个字符,去取字符
三,字符串方法
a.首字母变大写
h="hellow"
res=h.capitalize() #相当于PHP的ucfirst()
print(res)#输出结果为Hellow
b.内容居中
center(self,width,fillchar=None) #width:总长度,fillchar空白处填充内容,默认是无
a="bobo" res=a.center(20,"*") print(res) #输出的结果为********bobo********
c.统计字符串的某个字符出现几次
count('要统计的字符','开始位置','长度') #如果不传开始位置和长度,则默认是从位置0开始,到最后位置,相当于PHP的substr_count()
a="hellow bobo " res=a.count("o") #结果为3 res=a.count("o",0,9) #结果为2
d.是否以XXX结尾
endswith('子串','开始位置','长度')
a="hellow" a.endswith('w') #返回的是true a.endswith('o') #返回的是false a.endswith('llow') #返回true a.endswith(llo,0,5) #获取字符串大于0的位置,小于5的位置
endswith()的扩展:
函数:startswith()
作用:判断字符串是否以指定字符或子字符串开头
e."expandtabs()"将字符串中的tab键转换成空格
c="hellow\t666" #\t代表的是tab键 print(c.expandtabs()) #默认是将tab键转成5个空格,结果为 "hellow 666" print(c.expandtabs(8)) #传一个数字为8的参数之后是转成8个空格,结果为"hellow 666"
f."find()"寻找子序列位置,如果没找到,返回-1
c="hellow bobo" #注意find查找的位置值是从0开始的 print(c.find('h')) #输出的结果为0 print(c.find('o')) #在这里o有多个,返回的是第一o的位置 print(c.find('x')) #此时返回的是-1,因为x不在要查找的字符串里面
还有一个rfind()是从右边往左边查找
g."format()"字符串格式化
s="hellow :{0},age:{1}" #此时{0}和{1}在这里只是充当一个占位符 print(s) #直接打印的结果是"hellow {0},age:{1}" print(s.format('bobo',22)) #结果为"hellow:bobo,age:22",将占位符按顺序替换成参数
#这个函数还没有完后续补充
h."isalnum()"判断是否是字母和数字,没参数
a="feng6" b="feng" res=a.isalnum() ret=b.isalnum() print(res)#结果为true,因为此字符串同时存在字母和数字 print(ret)#结果为false,因为该字符串只存在字母
i."isalpha()"判断是否是字母,没参数
a="1234" b="1adfad" c="asdf" print(a.isalpha())#结果为false print(b.isalpha())#结果为false,数字跟字符串混合也是返回false print(c.isalpha())#结果为true
j."isdigit()"判断是否为数字,没参数
a="1234" b="1adfad" c="asdf" print(a.isdigit())#结果为true print(b.isdigit())#结果为false,数字跟字符串混合也是返回false print(c.isdigit())#结果为false
k."islower()"是检查全部内容是否都为小写,没参数
a="1234" b="1adfad" c="asdf" d="ASD" print(a.islower())#结果为false print(b.islower())#结果为true print(c.islower())#结果为true print(d.islower())#结果为false
l."isspace()"#判断是否是空格,没有参数
m."isupper()"#判断是否全部都是大写
n."join()"#连接,该功能相当于PHP中的implode(),这个很重要
#链接 li=['feng','bobo'] res="-".join(li)
ret="".join(li)
print(res) #结果为feng-bobo
print(ret) #结果为fengbobo
o.去掉字符串空格方法
# -*- coding:utf-8 -*- #去掉空格方法
#lstrip(char),rstrip(char),strip(char),他们都有一个参数,指定要去除的字符,如果没传参默认就是空格 a=" feng like " l=a.lstrip()#去掉左边空格 r=a.rstrip()#去掉右边空格 s=a.strip()#去掉两边空格,只去头尾,中间的空格无法去掉 print(l) print(r) print(s)
p."partition()"#分割字符串,得到三个部分,前,中,后.
#分割字符串 s="i love You" res=s.partition("love") print(res)#得到的是一个元祖类型('i ', 'love', ' You')
#从右边查找分割,rpartition()用法跟partition一样
q."replace()"#替换字符串
#替换字符串 #replace() #有三个参数,第一个是要查找的参数,第二个是要替换的参数,第三个是从左到右替换多少次 s="i love You only You" res=s.replace("You","feng")#如果不传参数默认是替换所有 ret=s.replace("You","feng",1)#第三个参数意思是从左到右替换多少次 print(res) print(ret) #输出结果 # i love feng only feng # i love feng only You
r.左填充或右填充
#填充 #ljust(width,fillchar)#右边填充,有两个参数,width是长度,长度是字符串加上要填充字符的长度,fillchar是要填充的字符 #rjust(width,fillchar)#左边填充,有两个参数,width是长度,长度是字符串加上要填充字符的长度,fillchar是要填充的字符 s="feng" res=s.ljust(5,"*")#左边填充 ret=s.rjust(5,"*")#右边填充 print(res) #结果为feng* print(ret) #结果为*feng
s.分割
# rsplit(sep=none,maxsplit=none)#有两个参数,它是从右边查找分割的,分割之后那个分割字符就会被过滤掉 # sep就是要以什么字符分割的 # maxsplit是要分割多少次,如果不传这个参数,默认是全部分割 s="feng end and " res=s.rsplit("n") ret=s.rsplit("n",1) print(res) #结果['fe', 'g e', 'd a', 'd '] print(ret) #结果['feng end a', 'd ']
#split()是从左向右找,用法和rsplit一样
t.根基换行分割
#根据换行分割 #splitlines(keepends=False)#有一个参数 #keepends是分割后是否保留分割字符,默认是False不保留 s="feng\nYin" res=s.splitlines() ret=s.splitlines(True) print(res)#结果:['feng', 'Yin'] print(ret)#结果:['feng\n', 'Yin']
u.大写变小写,小写变大写
#大写变小写,小写变大写 #swapcase()#没有参数 s="AadSxcvbDAS" res=s.swapcase() print(res) #结果为:aADsXCVBdas
v.变成标题
#变成标题 #title(),没有参数 s="the man" res=s.title() print(res)#结果为:The Man
w.获取字符串有多少个字符
#len()获取字符串有多少个字符 s="adsfcv" res=len(s) print(res) #结果为6
三丶列表
1.#创建一个列表
thelist=['Mark','Tom','Kuly','Love']
2.#索引
print(thelist[0])
3.#切片
print(thelist[1:2])#索引>=1到索引为2之间的元素
4.移除某个索引
thelist=['Mark','Tom','Kuly','Love']
del thelist[1]
结果:'Tom'被移除了
5.len在列表中同样适用
x=len(thelist)
#列表内部提供的方法
1.append(p_pbject)追加元素
#append(p_pbject)追加 #p_pbject是要追加进列表的元素 thelist=['Mark','Tom','Kuly','Love'] thelist.append('karven') print(thelist)#结果为['Mark', 'Tom', 'Kuly', 'Love', 'karven']
2.统计元素出现的次数
#count(value)#统计元素出现的次数 #value是要进行统计的元素 thelist=['Mark','Tom','Kuly','Love','Love','Love'] res=thelist.count("Love") print(res) #结果为3
3.扩展
#extend(iterable),扩展其实是将一个列表追加到另一个列表 #iterable参数其实是指一个列表 thelist=['Mark','Tom','Kuly','Love','Love','Love'] temp=['123','34','567'] thelist.extend(temp) print(thelist)#结果为:['Mark', 'Tom', 'Kuly', 'Love', 'Love', 'Love', '123', '34', '567']
4.获取某个值的索引
#index(value,start,stop) #start从哪个索引开始获取 #stop在哪个索引结束 thelist=['Mark','Tom','Kuly','Love','Love','Love'] res1=thelist.index('Love') res2=thelist.index('Love',4,6) res3=thelist.index('Love',5) print(res1) #结果为3 print(res2) #结果为4 print(res3) #结果为3
5.在哪个元素之前插入一个值
#在哪个元素之前插入一个值 # insert(index,p_pbject) #index参数:在哪个索引之前插入 #p_pbject参数:要插入的元素 thelist=['Mark','Tom','Kuly','Love','Love','Love'] alist=['abs',"nba"] thelist.insert(1,"alist")#插入普通字符串 print(thelist)#结果为['Mark', 'alist', 'Tom', 'Kuly', 'Love', 'Love', 'Love'] thelist.insert(1,alist)#插入列表 print(thelist)#结果为['Mark', ['abs', 'nba'], 'alist', 'Tom', 'Kuly', 'Love', 'Love', 'Love']
6.将列表最后一个元素或指定索引元素删除
#将列表最后一个元素或指定索引元素删除 #pop(index=none) #index参数:如果传索引参数,那么将删除这个列表中的这个索引的元素,不传参默认是删除最后一个 thelist=['Mark','Tom','Kuly','Love','Love','Love'] thelist.pop()#删除追后一个元素 print(thelist)#结果:['Mark', 'Tom', 'Kuly', 'Love', 'Love'] thelist.pop(2)#删除索引为2的元素,也就是“kuly” print(thelist)#结果:['Mark', 'Tom', 'Love', 'Love']
7.删除列表中指定的值
#remove(value) #value参数:要删除的值 thelist=['Mark','Tom','Kuly','Love','Love','Love','a'] thelist.remove("Mark") #删除值为“Mark”的元素 print(thelist)#结果为:['Tom', 'Kuly', 'Love', 'Love', 'Love', 'a'] thelist.remove("Love")#删除值为“Love”的元素,但是有多个Love元素,只会删除第一个Love print(thelist)#结果为:['Tom', 'Kuly', 'Love', 'Love', 'a']
8.反转列表数组
#反转列表数组 #reverse() #没有参数 thelist=['Mark','Tom','Kuly','Love','Love','Love','a'] thelist.reverse() print(thelist)#结果为:['a', 'Love', 'Love', 'Love', 'Kuly', 'Tom', 'Mark']
四.元组类型
元组跟列表几乎是一样的,但是元祖不能修改,列表可以修改
元祖因为不支持修改,所以不能进行增删改操作
所以只有两个方法
1.count()#统计元素出现的次数
thelist=('culy','lbl','culy')#注意元组类型的是用小括号包着的
thelist.count('culy')#结果为2
2.index()#获取指定元素的索引位置
thelist=('culy','lbl','culy')#注意元组类型的是用小括号包着的
thelist.index('lbl')#结果为1
五丶字典
字典的每一个元素都是键值对
info={'name':'bobo'}#字典是用花括号来包着的,跟JSON数据差不多
#可以索引
print(info["name"])#结果为"bobo"
#可以循环
#字典的方法
1.keys()#获取所有的键
info={'name':'bobo'}
print(info.keys())#结果为:[name]
2.values()#获取所有的值
info={'name':'bobo'}
print(info.values())#结果为:[bobo]
3.items()#获取所有的键值对
info={'name':'bobo'}
print(info.values())#结果为:[('name':'bobo')]
4.clear()#清除所有的内容
info={'name':'bobo'}
info.clear()
5.get()#根据key获取值,如果key不存在,可以指定一个默认值
info={'name':'bobo'}
val=info.get('name')
print(val)
val2=info.get('name1','123')
print(val2)
建议使用get()取值,如果索引取值,key不存在,报错
6.检查字典中指定的key是否存在
info={'name':'bobo'}
res='name' in info.keys()#结果:True
ret='adsf' in info.keys()#结果:False
7.pop()#获取并在字典中移除
#pop(k,d=none)#获取并在字典中移除 info={'name':'jems','age':18,'intter':'basketball',"idcard":"440802197909252239"} info.pop('age') print(info)#结果为:{'idcard': '440802197909252239', 'name': 'jems', 'intter': 'basketball'}
8.更新()#更新字典
#更新字典 #update()#更新字典 info={'name':'jems','age':18,'intter':'basketball',"idcard":"440802197909252239"} data={'a':'1','b':'2','c':'3'} info.update(data) print(info)#结果为:{'a': '1', 'c': '3', 'b': '2', 'name': 'jems', 'age': 18, 'idcard': '440802197909252239', 'intter': 'basketball'}
9.删除指定索引的键值对
#删除指定索引的键值对 data={'a':'1','b':'2','c':'3'} del data['b'] #删除 print(data)#结果为:{'a': '1', 'c': '3'}
六丶集合
集合是一个无序不允许重复的列表
1,创建
s=set()
s={11,22,33,44}#字典是有键,集合没有键
2,转换
l=[11,222,11,22]
l=(11,222,11,22)
l="123"
s=set(l)
#集合你的方法
1.add()#添加元素
2.clear()#清楚内容
3.copy()#浅拷贝
4.difference()#查找A中存在,B中不存在的
a={1,2,3}
b={3,2,4}
res=a.difference(b)#查找A中存在,B中不存在的
print(res)#结果为set([1])
5.difference_update()#从当前集合中删除和B中相同的元素
a={1,2,3}
b={5,2,4}
a.difference_update(b)#从当前集合中删除和B中相同的元素
print(a)#结果:set([1, 3])
6.discard()#移除指定元素,不存在不保错
a={1,2,3}
res=a.discard(2)
print(a)#结果为:set([1, 3])
7.intersection()#交集
a={1,2,3}
b={7,2,5}
res=a.intersection(b)#求交集
print(res)#结果为:set([2])
8.intersection_update()#取交集并更更新到a中
a={1,2,3}
b={7,2,5}
a.intersection_update(b)#取交集并更更新到a中
print(a)#结果为:set([2])
9.isdisjoint()# 如果没有交集,返回True,否则返回False
a={1,2,3}
b={7,2,5}
res=a.isdisjoint(b)#如果没有交集,返回True,否则返回False
print(res)#结果为:False
10.issubset()#是否是子序列
a={1,2,3}
b={1,2}
#issubset()#是否是子序列
res=b.issubset(a)#a是否完全包含b
print(res)# 结果:True
11.issuperset()#是否是父序列
a={1,2,3}
b={1,2}
#issuperset()#是否是父序列
res=a.issuperset(b)#a是否完全包含b
print(res)# 结果:True
12.pop()#移除元素
13.remove()#移除指定元素,不存在保错
14.symmetric_difference()#求差集
a={1,2,3}
b={1,2}
res=a.symmetric_difference(b)
print(res)#结果为:set([3])
15.symmetric_difference_update()#对称差集,并更新到a中
16.union()#并集
17.update()#更新,更新的参数可以是列表
a={1,2,3}
b={1,2}
b.update(a)#更新
print(b)#结果为:set([1, 2, 3])

浙公网安备 33010602011771号