字符串(str型)
-可以做加法,乘法
乘法例:
n1="alex"
n2=n1*3
print(n2)
#結果:alexalexalex
-首字母大寫: capitalize()
-所有字母變小寫: casefold()、lower()
??#casefold更牛,很多未知的對應關系也可以變小寫
-所有字母變大寫:upper()
-判斷字符串是否都是大寫,小寫:isupper(),islower()
-大小寫轉換,大寫變小寫,小寫變大寫:swapcase()
-去除字符串空白,左邊空白,右邊空白:strip(),lstrip(),rstrip()
-去除字符串左邊,右邊指定內容:lstrip("str"),rstrip("str")
? #str的內容可以分段與字符串匹配,先盡量去除多的子字符串
例:
1 test = "abclinda"
2 v = test.rstrip("3dar4lin")
3 print(v)
4 #結果:abc
-相當于設置寬度,并將內容居中: center(width,fillchar=None)
?#參數width必須給,fillchar可以不給,默認none
例:
1 test="abc"
2 v=test.center(10,'*')
3 print(v)
4 #結果:***abc****
-相當于設置寬度,并將內容左置: ljust(width,fillchar=None)
例:
1 test="abc"
2 v=test.center(10,'*')
3 print(v)
4 #結果:***abc****
-相當于設置寬度,并將內容右置: rjust(width,fillchar=None)
例:
1 test="abc"
2 v=test.rjust(10,'*')
3 print(v)
4 #結果:*******abc
-統計字符串中子串出現的次數: count(substr,start,end)
#從start開始到end之間子串substr出現的次數
-判斷從start位置開始到end位置,是否以suffix結尾:?? endswith(suffix,start,end)
-判斷從start位置開始到end位置,是否以prefix開頭:???? startswith(prefix,start,end)
-從開始往后找找到第一個子串,獲取其位置:find(substr,start,end)
-格式化,將字符串中的占位符替換為指定的值:format(args1,args2)
例1:
1 test="i am {name},age {a}"
2 print(test)
3 v=test.format(name="hm",a=25)
4 print(v)
5 #結果:i am {name},age {a}
6 # i am hm,age 25
例2:
1 test="i am {0},age {1}"
2 print(test)
3 v=test.format("hm",25)
4 print(v)
5 #結果:i am {0},age {1}
6 # i am hm,age 25
例3:
1 test="i am {name},age {a}"
2 print(test)
3 v=test.format_map({"name":"hm","a":25})
4 print(v)
5 #結果:i am {name},age {a}
6 # i am hm,age 25
-判斷字符串中是否只包含字母或數字:isalnum()
-判斷字符串中是否只包含字母(包括漢字):isalpha()
-以\t為分界,num個字符為一組,不滿num個的用空格填充:expandtabs(num)
例:
test="612345\t789\t987"
v=test.expandtabs(5)
print(v,len(v))
#結果:612345 789 987 18
-判斷字符串輸入的是否是數字:isdecimal()、isdigit()、isnumeric()
例:
1 test="三"
2 v1=test.isdecimal()
3 #識別十進制數字
4 v2=test.isdigit()
5 #特殊字符數字(③)也能識別
6 v3=test.isnumeric()
7 #特殊字符數字,漢字數字都能識別
8 print(v1,v2,v3)
9 #結果:False False True
-判斷字符串是否是標識符:isidentifier()
-判斷字符串是否可以被print:isprintable()
?#字符串中存在不可顯示的字符時,比如轉義符\n \t等,結果就是false
-判斷字符串是否全是空格:isspace()
-轉換成標題形式,及每個單詞首字母大寫:title()
-判斷字符串是否是標題:istitle()
-字符串test每個字符中間插入間隔符t: t.join(test)
例:
1 test="12你是豬頭bb"
2 t='_'
3 v=t.join(test)
4 print(v)
5 #結果:1_2_你_是_豬_頭_b_b
-字符串中某些字符str1替換成指定字符str2:maketrans(str1,str2) &translate()
例:
1 m=str.maketrans("我做飯1","你炒菜2")
2 v = "我不做今天飯1"
3 new_v=v.translate(m)
4 print(new_v)
5 #結果:你不炒今天菜2
-用str2替換字符串中的某些字符str1:replace(str1,str2,num)
?#num表替換次數
例:
1 test="1abcabcabc2"
2 v=test.replace("bc","AA",2)
3 print(v)
4 #結果:1aAAaAAabc2
-從左起第一個指定字符分割字符串:partition("str")
?從右起第一個指定字符分割字符串:rpartition("str")
例:
1 test="sr3abcdea1242"
2 v=test.partition("a")
3 print(v)
4 #結果:('sr3', 'a', 'bcdea1242')
-按指定字符分割字符串,分割次數可以設置,但指定字符會丟失:split('str',num)
例:
1 test="sr3abcdae4a123"
2 v=test.split("a",2)
3 print(v)
4 #結果:['sr3', 'bcd', 'e4a123']
-根據換行符\n分割字符串,參數True,False表是否保留換行符:splitline(args)
例:
1 test="sr3ab\ncdae\n4a123"
2 v=test.splitlines(True)
3 print(v)
4 #結果:['sr3ab\n', 'cdae\n', '4a123']
-獲取字符串指定位置的字符:str[num] (索引的概念)
-獲取指定索引范圍內的字符:str[num1:num2] (切片的概念)
?#num1取得到,num2取不到
?#str[0:-1]表示:-1表示右起第一位數
-獲取字符串中的字符數:len(str) #python3中一個漢字就是一個字符
-遍歷字符串中每個字符可以用for循環:
例:
1 test="藍天白云ab12"
2 for v in test:
3 print(v)
4 #結果:
5 # 藍
6 # 天
7 # 白
8 # 云
9 # a
10 # b
11 # 1
12 # 2
?
數字
-在python3里沒有范圍限制,int型
-可以加(+),減(-),乘(*),除(/),乘方(**),求余(%),取商整數部分(//)
-類型轉換
例1:字符串轉換為數字類型
1 a="123"
2 b=int(a)
3 print(type(b),b)
4 # 結果:<class 'int'> 123
例2:字符串按指定進制轉換成數字類型
1 num="a"
2 v=int(num,base=16)
3 print(v)
4 #結果:10
例3:數字轉換成字符串類型
1 a=123
2 b=str(a)
3 print(b)
4 #結果:123
-數字的長度(當前數字的二進制至少用位表示)
例:
1 age=10
2 v=age.bit_length()
3 print(v)
4 #結果:4
?
布爾值,bool型:True、Flase
字符串 "" =>Flase???? " "=>True
數字 0 =>Flase???? 其他 =>True
?
列表list
1.列表中的元素可以是字符串、數字、bool值、列表...
?a.索引可取值
?b.切片仍是列表
?c.支持for循環,while循環
?d.列表元素可以被修改,被刪除
例:del li(2)/del li[1:3]
2.類型轉換
a.字符串轉列表
例:
1 s = "wqdf"
2 new_s=list(s)
3 print(new_s)
4 #結果:['w', 'q', 'd', 'f']
b.列表轉換成字符串
-列表里既有數字又有字符串時,用for循環
例:
1 li=[12,23,"ab"]
2 s=""
3 for i in li:
4 s=s+str(i)
5 print(s)
6 #結果:1223ab
-列表中只有字符串時,直接使用字符串的joi方法
例:
1 li=["1aa2b","ab"]
2 v="".join(li)
3 print(v)
4 #結果:1aa2bab
3.在list最后追加元素:append(args)
4.清空list:clear()
5.拷貝:copy()
6.計算列表中某元素出現次數:count(args)
7.擴展原列表:extend(li)
*li是字符串會或列表或元祖等可迭代對象,li中每個元素作為新元素追加到原列表中
8.查找某元素的索引:index(args)
*最左邊優先
9.在指定索引位置插入元素:insert(location,args)
10.刪除指定索引的元素,并可以獲取到該元素:v=pop(index)
*index不指定時,默認刪除最后一個元素
11.刪除指定元素:remove(value)
12.給列表排序
-從小到大:li.sort()
-從大到小:li.sort(reverse=True)
?
元祖tuple
1.元祖的一級元素不可增刪改
2.元祖的元素可以是數字,字符串,bool值,列表
3.推薦在元祖最后一個元素后加逗號,用以與方法區分
例:tu=(12,21,"a",True,[1,"a"],)
4.索引可取值
5.切片也可取值,仍是元祖
6.可以for循環(可迭代對象)
7.類型轉換
a.字符串轉換成元祖
b.列表可轉換成元祖
c.元祖可轉換成列表
d.元祖轉換成字符串
-元祖中只包含字符串元素,可用join()方法轉換成字符串
-元素中包含字符串與數字等元素,用for循環轉換成字符串
8.獲取元素在元祖中出現的次數:count(value)
9.獲取元素在元祖中的索引位置(最左邊的優先):index(value)
?