查看功能:按住Ctrl,点击左键
一、数字 int
1. 做运算:加减乘除/、次方(2**4:2的4次方)、 取余(39%8:39除以8取余 =7)、取整(39 // 8:得商 =4)
2. 用法
(1)将字符串转换为数字
1 a='123'
2 print(type(a),a) 3 b=int(a) 4 print(type(b),b)
(2)将其他进制的数字转换为十进制(如:将0011以二进制的方式转换为十进制)
1 num='0011'
2 v=print(num,base=2) 3 print(v)
(3)bit_length:当前数字的二进制至少用n位来表示
注:在python3中,所有数字都称为整形 int;在python2中,超出范围的数字称为长整型 long。
二、字符串 str:一旦创建,不可修改。一旦修改或拼接,都会重新生成字符串
1. 做运算:加法(相当于几句话合并为一句)、乘法(‘alex’*10==>alex重复10遍)
2. 扩展功能
casefold:大写变小写(全能);
lower:大写变小写(常见的英文字符)
test='DSG'
v=test.casefold()
print(v) 返回:dsg
find:从头往后找,找到第一个后,获取其位置。区间:大于等于&小于
test='sdfdfgh'
v=test.find('f') print(v) 返回:2 #位置从0开始,区间:=< <
join:将字符串中每个元素按指定分割符进行拼接
test=('你是风儿我是沙')
t='_' v=t.join(test) print(v) 返回:你_是_风_儿_我_是_沙
upper:转换为大写
isupper:判断是否为大写
test='Dfg'
v=test.upper()
print(v) 返回:DFG ####################### test='Dfg' v=test.isupper() print(v) 返回:False
strip:去除空格;去除\t、\n;去除指定元素(优先最多匹配)
lstrip、rstrip:去除左边/右边空格
test=' Dfgffgh '
v=test.strip()
print(v) 返回:Dfgffgh ################## test=' Dfgffgh\t\n ' v=test.strip() print(v) 返回:Dfgffgh ################## test='*D*fgf*fgh**' v=test.strip('*') print(v) 返回:D*fgf*fgh
split、rsplit:从左侧/右侧分割,默认全部分割,可指定分割次数,但无法返回分割符
test='D*fgf*f*ghdj*h'
v=test.split('g') print(v) 返回:['D*f', 'f*f*', 'hdj*h'] ######################### test='D*fgf*f*ghdj*h' v=test.rsplit('g') print(v) 返回:['D*f', 'f*f*', 'hdj*h']
replace:替换
test='fgfghDJFHdg'
v=test.replace('fg','12') print(v) 返回:1212hDJFHdg
format:格式化。将一个字符中的占位符替换为指定的值
test='i am {name},{age}'
v=test.format(name='alex',age=19) print(v) 返回:i am alex,19 ######################################### test='i am {0},{1}' v=test.format('alex',19) print(v) 返回:i am alex,19
format_map:同format,用法不同。
test='i am {name},{age}'
v=test.format_map({'name':'alex','age':19}) print(v) 返回:i am alex,19
capitalize:首字母大写
test='dsg'
v=test.capitalize()
print(v) 返回:Dsg
center(20,"*"):设置宽度并将内容居中;20代指总长度,*表示空白位置填充,一个字符,可有可无
test='DSG'
v=test.center(20,'*') print(v) 返回:********DSG*********
count:在字符串中寻找子序列出现的次数
test='sdfdfgh'
v=test.count('df') print(v) 返回:2
endswith:以什么什么结尾
test='sdfdfgh'
v=test.endswith('df') print(v) 返回:False test='sdfdfgh' v=test.endswith('h') print(v) 返回:True
startswith:以什么什么开始
test='sdfdfgh'
v=test.startswith('h') print(v) 返回:False test='sdfdfgh' v=test.startswith('s') print(v) 返回:True
isalnum:判断字符串中是否仅含字母和数字
test='sdfdfgh'
v=test.isalnum()
print(v) 返回:True ########################### test='123dfsdg_' v=test.isalnum() print(v) 返回:False
expandtabs:制表符tab填补空位
test="username\temail\tpassword\nwangyiying\[email protected]\t123\nwangyiying\[email protected]\t123\nwangyiying\[email protected]\t123\n"
v=test.expandtabs(20)
print(v) 返回: username email password wangyiying [email protected] 123 wangyiying [email protected] 123 wangyiying [email protected] 123
isalpha:判断字符串中是否仅包含字母、汉字
test='123dfsdg'
v=test.isalpha()
print(v) 返回:False ############################ test='dfsdg' v=test.isalpha() print(v) 返回:Ture ############################ test='你好' v=test.isalpha() print(v) 返回:Ture
isdecimal:判断是否输入数字(十进制,用的多,如2)
isdigit:判断是否输入数字(特殊符号如②)
isnumeric:判断是否输入数字(中文字符,如二)
test='2'
v=test.isdecimal()
print(v) 返回:Ture ########################## test='2②' v=test.isdigit() print(v) 返回:Ture ########################## test='2二②' v=test.isnumeric() print(v) 返回:True
isidentifier:判断标识符:字母、数字、下划线(数字不能开头)
test='_dfdf12_'
v=test.isidentifier()
print(v) 返回: True ############################## test='1_dfdf12_' v=test.isidentifier() print(v) 返回:False
isprintable:判断是否存在不可显示的字符,如 \t
test='1_dfdf12_'
v=test.isprintable()
print(v) 返回:True ########################## test='1_dfdf12_\n\t' v=test.isprintable() print(v) 返回:False
isspace:判断字符串中是否全部为空格
test='dsfd gfgf'
v=test.isspace()
print(v) 返回:False ######################### test=' ' v=test.isspace() print(v) 返回:True
istitle:判断是否为标题(首字母均为大写)
test='Dfg fgfdj trnh'
v=test.istitle()
print(v) 返回:False ########################## test='Dfg Fgfdj Trnh' v=test.istitle() print(v) 返回:True
title:将字符串转换为标题
test='Dfg gfdj rnh'
v=test.title()
print(v) 返回:Dfg Gfdj Rnh
ljust、rjust:将字符串放在左边/右边,其余用填充符填充
test='Dfg'
v=test.ljust(20,'*') print(v) 返回:Dfg***************** ################################# test='Dfg' v=test.rjust(20,'*') print(v) 返回:*****************Dfg
maketrans:做替换,与translate连用
v="sofhugkai"
m=str.maketrans('aeiou','12345') new_v=v.translate(m) print(new_v) 返回:s4fh5gk13
partition、rpartition:从左侧/右侧分割,只能分三份
test='D*fgf*fgh'
v=test.partition('*') print(v) 返回:('D', '*', 'fgf*fgh') ############################## test='D*fgf*fgh' v=test.rpartition('*') print(v) 返回:('D*fgf', '*', 'fgh')
splitlines:根据换行符进行分割
test='D*fgf*f*g\nhdj*h'
v=test.splitlines()
print(v) 返回:['D*fgf*f*g', 'hdj*h']
swapcase:大小写互相转换
test='fgfdghDJFHdg'
v=test.swapcase()
print(v) 返回:FGFDGHdjfhDG
3. 特殊功能
(1)索引:获取字符串中的某一个字符
test='alex'
v=test[0]
print(v) 返回:a
(2)切片:获取字符串中的多个字符
test='alex'
v=test[0:2]
print(v) 返回:al #范围:0=< <2 ########################## test='alex' v=test[0:-1] print(v) 返回:ale #-1:直接到达最后位置
(3)for循环:for 变量名 in 字符串:
test='好好学习'
index=0
while index<len(test): v=test[index] print(v) index+=1 print('完成') ############################## test='好好学习' for item in test: print(item) 返回: 好 好 学 习
(4)len:字符串由多少个字符组成
test='alex'
v=len(test)
print(v) 返回:4
(5)range:创建连续数字;通过设置步长指定不连续
test=input('>>>') #wyy
print(test) #test=wyy,test[0],test[1],test[2] l=len(test) #l=3 print(l) r=range(0,l) #r=(0,3) for item in r: print(item,test[item]) 返回: wyy 3 0 w 1 y 2 y ##########简化如下########### test=input('>>>') for item in range(0,len(test)): print(item,test[item]) 返回: 0 w 1 y 2 y
三、列表:list
1.基本操作
(1)书写格式:li=[1,12,9,'age','alex']
(2)列表中可嵌套任何类型
(3)有序:可while循环
(4)元素可以被修改
2. 扩展功能
append:原值后追加,追加部分作为整体
li = [11, 22, 33, 22, 44] li.append(5) li.append("alex") li.append([1234,2323]) print(li)
extend:扩展原列表,每个元素追加到原列表中,实质:执行for循环
li = [11, 22, 33, 22, 44] li.append([9898,"不得了"]) [11, 22, 33, 22, 44, [9898, '不得了']]
###########与append对比######################
for i in [9898,"不得了"]:
li.append(i)
[11, 22, 33, 22, 44, 9898, '不得了']
insert:在指定索引位置插入元素
li = [11, 22, 33, 22, 44] li.insert(0,99) print(li)
clear:清空列表
li.clear() print(li)
copy:浅拷贝
v = li.copy() print(v)
count:计算元素出现的次数
v = li.count(22) print(v)
index:根据值获取当前值索引位置(左边优先)
li = [11, 22, 33, 22, 44] v= li.index(22) print(v)
pop:删除某个值(1. 指定索引 2. 默认最后一个),并获取删除的值
li = [11, 22, 33, 22, 44] v = li.pop() print(li) print(v) ################################### li = [11, 22, 33, 22, 44] v = li.pop(1) print(li) print(v)
remove:删除列表中的指定值(左边优先)
li = [11, 22, 33, 22, 44] li.remove(22) print(li) ######################################## PS删除指令: pop,remove,del li[0],del li[7:9],clear
reverse:将当前列表进行翻转
li = [11, 22, 33, 22, 44] li.reverse() print(li)
sort:排序,默认从小到大排;若想从大到小排:reverse=True
li = [11,44, 22, 33, 22] li.sort() li.sort(reverse=True) print(li)
3. 特殊操作
(1)获取值
#索引 li[3] #切片,结果为list li[3:5] #for循环 for item in list: print(item)
(2)修改
#索引 li[1]=120 li[1]=[11,22,33] #切片 li[1:3]=[120,90]
(3)删除
#索引 del li[1] #切片 del li[2:6]
(4)in操作
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] v1 = "石振文" in li print(v1) v2 = "age" in li print(v2)
(5)转换
#字符串==>列表:内部使用for循环 s = "pouaskdfauspdfiajsdkfj" new_li = list(s) print(new_li) #列表==>字符串 #既有数字,又有字符串:自己写for循环 li = [11,22,33,"123","alex"] s = "" for i in li: s = s + str(i) print(s) #仅有字符串:直接用join li = ["123","alex"] v = "".join(li) print(v)
定位索引例子
#找到19 li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] li[4][1][0] #找到19中的9 li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] li[4][1][0][1]
四、元组:tuple
1.基本操作
(1)书写格式:tu=(111,'alex',(11,22),[(33,44)],True,33,44,),一般最后加入”,“
(2)一级元素不可被修改、增加、删除
(3)有序:可while循环
2.特殊功能
(1)获取值
#索引 tu = (111,"alex",(11,22),[(33,44)],True,33,44,) v = tu[0] print(v) #切片 tu = (111,"alex",(11,22),[(33,44)],True,33,44,) v = tu[0:2] print(v) #for循环 tu = (111,"alex",(11,22),[(33,44)],True,33,44,) for item in tu: print(item)
(2)转换
元组==>字符串,与列表==>字符串情况相同
例题:
tu = (111,"alex",(11,22),[(33,44)],True,33,44,) v = tu[3][0][0] print(v) v=tu[3] print(v) tu[3][0] = 567 print(tu)
五、字典:dict
1.基本操作
(1)书写格式:键值对,info={"k1":"v1","k2":"v2"}
(2)字典的key不能是列表、字典;value可为任何值
info = { "k1": 18, "k2": True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } print(info)
(3)无序
2.扩展功能
keys
values
items
get:根据key获取值,key不存在时,可指定默认值(None)
v = dic['k11111'] print(v) v = dic.get('k1',111111) print(v)
update:更新
dic = { "k1": 'v1', "k2": 'v2' } dic.update({'k1': '111111','k3': 123}) print(dic) dic.update(k1=123,k3=345,k5="asdf") print(dic)
fromkeys:根据序列,创建字典,并指定统一的值
dic = { "k1": 'v1', "k2": 'v2' } v = dict.fromkeys(["k1",123,"999"],123) print(v)
pop:指定删除并获取值
popitem:随即删除并获取值
dic = { "k1": 'v1', "k2": 'v2' } v = dic.pop('k1',90) print(dic,v) k,v = dic.popitem() print(dic,k,v)
setdefault:设置值。若已存在,则不设置,获取当前key对应的值;若不存在,则设置,添加到字典中并获取对应值
dic = { "k1": 'v1', "k2": 'v2' } v = dic.setdefault('k1111','123') print(dic,v)
3.特殊操作
(1)获取值
info = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } v = info['k1'] print(v) v = info[2] print(v) v = info['k3'][5]['kk3'][0] print(v)
(2)删除
info = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } del info['k1'] del info['k3'][5]['kk1'] print(info)
(3)for循环
info = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } #keys for item in info.keys(): print(item) #values for item in info.values(): print(item) #items for k,v in info.items(): print(k,v)
六、布尔值:bool
1. 取值:真 Ture;假 False
2. False:None,“空字符串”,(空元组),[空列表],{空字典},0
3.转换:bool()
4. 运算顺序:有括号先计算括号内;否则从前到后
Ture or ==>Ture
Ture and ==>继续走
False or ==>继续走
False and ==>False
以上。