資料型別的內置方法
什么是資料型別的內置方法?
? 資料型別自帶的操作方法或功能
呼叫資料型別的內置的方法的方式是:
? 句點符
資料型別.方法名()
eg:
變數名.方法名()
資料值.方法名()
1.整型相關操作方法
-
型別轉換
int(待轉換的資料型別)
1.浮點型可以轉整型 '只要小數點前面的整數 不做四舍五入' 2.字串可以轉整型 '但是字串內部必須是整數才可以' 3.布林值的使用 int(True) #1 int(False) #0 4.其他型別轉整型會報錯 -
進制數轉換
十進制轉其他進制: 十進制轉二進制>>bin() 十進制轉八進制>>oct() 十進制轉十六進制>>hex() ''' 0b >>> 二進制標識 0o >>> 八進制標識 0x >>> 十六進制標識 數字開頭沒有任何標識的激素hi十進制 ''' 其他進制轉十進制 '''自動轉''' 二進制轉十進制>>int(0b0101110101) 二進制轉八進制>>int(0o155) 二進制轉十六進制>>int(0x64) '''手動轉''' 二進制轉十進制>>int('0b0101110101',2) 八進制轉十進制>>int('0o155',8) 十六進制 轉十進制>>int('0x64',16)
2.浮點型相關操作方法
-
型別轉換
float(待轉換的資料)
1.整型可以轉成浮點型 '后面跟一個小數點1.0' 2.字串可以轉成浮點型 '但是字串內必須是數字(整數或者小數)' 3.布林值的使用 int(True) #1.0 int(False) #0.0 4.其他型別轉浮點型會報錯 -
數學運算邏輯容易出錯
a = 23.00 b = 1.2 c = a * b print(c) # 27.599999999999998 ''' 由以上舉例得出:python對數字運算精確度很低,容易出錯! 如需要精準的計算需借助其他模塊! '''
3.字串相關操作方法
-
型別轉換
str(待轉換的資料)
1.所有的資料型別都可以轉換成字串型別 2.給所有資料型別前后加引號也可以轉換成字串型別 -
常用內置方法
-
1.索引取值(單個字串)
1.索引取值是從0開始的 顧頭不顧尾 2.超出索引的取值范圍就會報錯 3.索引支持負數 [-1] 就是取最后一個 s1 = 'abcde' print(s1[0]) # a print(s1[-1]) # e -
2.切片取值(多個字符)
l1 = [1,2,3,4,5,6,7] print(l1[:]) # [1,2,3,4,5,6,7]全要 print(l1[:3]) #[1,2,3]要前3個 print(l1[2:]) #[3,4,5,6,7]前2個不要剩下的全要 print(l1[2:5])#[3,4,5]要索引2-索引5之間的 索引顧頭不顧尾 所以最后一位不拿 print(l1[-3:-1])#[5,6] 從后往前拿 -
3.修改切片間隔
s1 = 'abcde' print(s1[0:5:1]) # abcde 取索引0~索引4的值且間隔1 print(s1[0:5:2]) # ace 取索引0~索引4的值且間隔2 print(s1[::2]) # ace 取所有值且間隔2 -
4.統計字符次數
len(待統計的變數名或資料值)
s1 = 'abcde' print(len(s1)) # 5 -
5.移除首尾指定字符
strip(想要移除的符號)
name = '$張三$' 1)移除首尾所有指定字符 print(name.strip('$')) # 張三 2)移除首指定字符 print(name.lstrip('$')) # 張三$ 3)移除尾指定字符 print(name.rstrip('$')) # $張三 4)括號內不寫默認移除空格 print(name.strip()) # 張三 '常用于獲取用戶輸入移除用戶不小心打的空格' -
6.切割字串中的指定字符
split('')當字串中有多個重復字符分割不同資料時,可切割該指定字符以串列的形式顯示
a = 'aaa|bbb|ccc' 1)切割所有指定字符 print(a.split('|')) # ['aaa', 'bbb', 'ccc'] #注意:此處可以用【解壓賦值】依次賦值給不同變數名! 2)從左往右切指定個數 print(a.lsplit('|',maxsplit=1)) #['aaa', 'bbb|ccc'] 3)從右往左切指定個數 print(a.rsplit('|',maxsplit=1)) #['aaa|bbb', 'ccc'] -
7.字串大小寫相關
uppre() lower() isupper() islower()常用于驗證碼
a = 'aHGdb' 1.將字串全部轉成大小寫 print(a.upper()) print(a.lower()) 2.判斷當前字串是否為純大小寫 結果是布林值 print(a.isupper()) print(a.islower()) -
8.字串格式化輸出
方式1):等價于%s 沒優勢 lx = '我的名字是{},我的年齡是{}' print(lx.format('張三',18)) #結果為:我的名字是張三,我的年齡是18 方式2):支持索引取值,可以重復使用 lx = '我的名字是{0},我的年齡是{1}{0}{1}' print(lx.format('張三',18)) #結果為:我的名字是張三,我的年齡是18張三18 方式3):支持關鍵字取值(按K取值),可重復使用 lx = '名字是{name}{name}年齡是{age}' print(lx.format(name='張三',age=18)) #結果為:名字是張三張三年齡是18 方法4):最常用!!!***************** name = '張三' age = 18 print(f'名字是{name}年齡是{age}') #結果為:名字是張三年齡是18 -
9.判斷字串中是否是純數字
isdigit()判斷是否為純數字 常用于用戶輸入時校驗 結果是布林值
print('123'.isdigit()) # True print('123a'.isdigit()) # False
-
-
其他內置方法
-
1.替換字串中指定內容
replace()括號內寫被替換的字符與 想要替換的字符
a='a a a b b b' 1)從左往右替換所有指定內容 print(a.replace('a','c')) #結果為:c c c b b b 2)從左往右替換指定個數的內容 print(a.replace('a','c',1)) #結果為:c a a b b b -
2.字串的拼接
'' . join([a,b]) 引號中間可以加想要拼接的字符 也可以不寫 a,b分別是想要拼接起來的資料
a='張' b='三' 方式1):直接用+號,但是易占用較多記憶體 print(a+b) # 張三 方式2):直接*該字串實作拼接多個 print(a*2) # 張張 方式3):建議使用join方法!切可以在拼接中插入指定字符 print(''.join([a,b])) # 張三 print('|'.join([a,b])) # 張|三 -
3.統計指定字符出現的次數
count()統計個數
a='aabcdef' print(a.count('a')) #2 '''統計a出現的次數''' -
4.判斷字串開頭或者結尾
startswith()判斷開頭是否為某個值
endswith()判斷結尾是否為某個值
a='hello' #判開頭是否是'he' print(a.startswith('he')) # True #判斷結尾是否是'lo' print(a.endswith('lo')) # True -
5..查找某個字符對應索引值
index() 存在則回傳索引值 如果有相同的 則只會回傳從左邊數第一個查到的某個字符的索引值 不存在則報錯
find()存在則回傳索引值 如果有相同的 則只會回傳從左邊數第一個查到的某個字符的索引值 不存在回傳-1
a='helloh' #獲取'h'的索引值 不存在則報錯 print(a.index('h')) # 0 #獲取'a'的索引值 不存在則回傳-1 print(a.find('a')) # -1 -
6.正文相關轉換首字母大寫
title() 將所有字串的首字母大寫
capitalize() 將第一個字串的首字母大寫
a = 'my name is zhangsan' 1)將所有單詞的首字母大寫 print(a.title()) #結果為:My Name Is Zhangsan 2)將字串第一個字母大寫 print(a.capitalize()) #結果為:My name is zhangsan
-
4.串列相關操作方法
-
型別轉換
list(其他資料型別)
能夠被for回圈的資料都可以轉換成串列
支持for回圈的資料型別有:串列、字典(只有k參與)、元組、集合、字串
字串、字典、元組、集合: print(list('123')) # ['1', '2', '3'] print(list({'name':'張三','age':'18'})) # ['name', 'age'] print(list((1,2,3))) # [1, 2, 3] print(list({1,2,3})) # [1, 2, 3] -
常用內置方法
-
1.索引取值(單個資料值)
''' 1.索引值是從0開始(顧頭不顧尾) 2.超出索引范圍會直接報錯 3.索引可跟負數,[-1]為取最后一個 ''' l1 = [1, 2, 3] print(l1[0]) # 1 print(l1[-1]) # 3 -
2.切片取值(多個資料值)
l1 = [1,2,3,4,5,6,7] print(l1[:]) # [1,2,3,4,5,6,7]全要 print(l1[:3]) #[1,2,3]要前3個 print(l1[2:]) #[3,4,5,6,7]前2個不要剩下的全要 print(l1[2:5])#[3,4,5]要索引2-索引5之間的 索引顧頭不顧尾 所以最后一位不拿 print(l1[-3:-1])#[5,6] 從后往前拿 -
3.修改切片間隔
l1 = [1,2,3,4,5] print(l1[0:5:1]) # [1,2,3,4,5] 取索引0~索引4的值且間隔1 print(l1[0:5:2]) # [1,3,5] 取索引0~索引4的值且間隔2 print(l1[::2]) # [1,3,5] 取所有值且間隔2 -
4.統計串列資料值個數
len() 統計資料值個數
l1 = [1,2,3,4,5] print(len(l1)) # 5 -
5.修改資料值
通過索引找出想要修改的資料值 直接賦一個新的資料值
l1 = [1,2,3,4,5] l1[0] = 'z' print(l1) #結果為:['z',2,3,4,5] -
6.添加資料值
append()尾部追加
insert()括號內跟索引 與 想要插入的資料值
extend()合并兩個串列
1)尾部追加資料值 l1 = [1, 2, 3, 4, 5] l1.append('zzz') print(l1) #結果為:[1, 2, 3, 4, 5, 'zzz'] 2)任意位置插入資料值(在索引幾的位置插入什么資料) l1 = [1, 2, 3, 4, 5] l1.insert(1,'zzz') print(l1) #結果為:[1, 'zzz', 2, 3, 4, 5] 3)擴展串列、合并串列 l1=[1,2,3] l2=[4,5,6] 方式一:不建議使用 print(l1+l2) #結果為:[1,2,3,4,5,6] 方式二:底層是用for+append實作的 l1.extend(l2) print(l1) #結果為:[1,2,3,4,5,6] -
7.洗掉資料
del() eg:del l1[0] 洗掉串列1中的索引值為0的資料值
remove()洗掉指定資料
pop()彈出后可以賦給一個變數名 然后洗掉 也可以接著用
l1 = [1,2,3,4,5] 1)通用洗掉 del:(洗掉某個索引對應的值) del l1[0] print(l1) #結果為:[2, 3, 4, 5] 2)指定洗掉 remove:(徹底洗掉指定的資料值) l1.remove(2) print(l1) #結果為:[1, 3, 4, 5] 3)取出后洗掉 pop:(可以把取出的值賦值給一個變數) '括號內不寫默認最后一個,0代表第一個,1代表第二個' l1.pop() print(l1) #結果為:[1, 2, 3, 4] a = l1.pop() print(a) #結果為:5 pop常用于觀展人數中,xxx退出觀戰 -
8.查看資料值對應的索引值
index() 查看某個資料的索引值
l1=[1,2,3,4] print(l1.index(1)) #結果為:0 -
9.統計某個資料值出現的次數
count()統計資料值出現的次數
l1=[1,1,2,3,4,5] print(l1.count(1)) #結果為:2 -
10.資料值排序
sort()升序
sort(revrese = True)降序
l1=[4,2,5,1,2,3] 1)升序: l1.sort() print(l1) #結果為:[1, 2, 2, 3, 4, 5] 2)降序: l1.sort(reverse=True) print(l1) #結果為:[5, 4, 3, 2, 2, 1] -
11.反轉串列資料值順序
reverse()將串列反轉
跟升序降序不同
l1=[4,2,5,1,2,3] l1.reverse() print(l1) #結果為:[3, 2, 1, 5, 2, 4] -
12.兩個串列比較
a = [99,11] b = [11,22,33] print(a > b) #結果為:True l1 = ['a','b'] l2 = ['A','B'] print(l1 > l2) #結果為True ''' 1.兩個串列在比較大小時,是按照索引0來互相比較, 2.不同資料型別之間無法比較 3.a比A大的原因是因為中間涉及到字符編碼,a=97 A=65 '''
-
5.字典相關操作方法
-
型別轉換
dict(其他資料型別)
字典一般是直接定義 不型別轉換
-
常用內置方法
-
1.字典取值
按k取值
.get()常用來取字典中的k鍵
按k取值 k不存在就會報錯 d = {'name':'張三','age':18} print(d['name']) #結果為:張三 print(d['xxx']) #結果為:會報錯 get取值 k不存在時回傳none d = {'name':'張三','age':18} print(d.get('name')) #結果為:張三 print(d.get('xxx')) #結果為:None -
2.修改字典v值
直接按k鍵 = 想要修改的新資料值
d = {'name':'張三','age':18} d['name']='李四' print(d) #結果為:{'name': '李四', 'age': 18} -
3.新增鍵值對
當k存在時 修改k對應的v值
當k不存在時 新增鍵值對
d = {'name':'張三','age':18} d['pwd']=123 print(d) #結果為:{'name': '張三', 'age': 18, 'pwd': 123} -
4.洗掉資料
del 直接洗掉
pop() 可以給彈出的資料值系結一個變數名 接著用
d = {'name':'張三','age':18} 1)del d['name'] #洗掉name的鍵值對 2)a = d.pop('name') print(a)#列印出來的就是洗掉掉的V值 print(d)#列印出來的就是洗掉后的串列 -
5.統計字典中的鍵值對個數
len()統計字典中鍵值對的個數
d = {'name':'張三','age':18} print(len(d)) #結果為:2 -
6.獲取所有鍵、值、鍵值對資料
keys() 獲取所有鍵 k
values()獲取所有值 v
items()獲所有鍵值對 k:v 支持for回圈
d = {'name':'張三','age':18} d = {'name':'張三','age':18} 獲取所有【鍵】 print(d.keys()) # dict_keys(['name', 'age']) 獲取所有【值】 print(d.values()) # dict_values(['jason', 18]) 獲取所有【鍵值對】(組成串列套元組形式) print(d.items()) # dict_items([('name', 'jason'), ('age', 18)]) items獲取的值 支持for回圈: for k,v in d.items(): print(f'{k}:{v}') #結果為: #name:jason #age:18 -
7.快速構造字典
dict.formkeys( [ ' ' , ' ' ],' ' )
快速生成一個值相同的字典 '第一個串列里的資料值當作鍵,第二個是公共的資料值(所有鍵的值都相同)' d1=dict.fromkeys(['name','pwd','hobby'],123) print(d1) #結果為:{'name': 123, 'pwd': 123, 'hobby': 123} 后期可以再單個修改對應的值資料 筆試題: res=dict.fromkeys(['name','pwd'],[]) print(res)#{'name': [], 'pwd': []} res['name'].append('jason') res['pwd'].append(123) print(res)#{'name': ['jason', 123], 'pwd': ['jason', 123]} '當第二個公共資料值是可變型別的 通過任何鍵呼叫內置方法去修改值時會影響所有的鍵' -
8.從串列中取出最后的鍵值對
popitem()
d={'name':'jason','age':18,'pwd':'123'} print(d.popitem()) # 也可以賦值給一個變數名,列印變數名 #列印第一次結果為:('pwd', '123') print(d.popitem()) #列印第二次結果為:('age', 18) print(d) #此時列印字典的結果為:{'name': 'jason'} 當沒有鍵值對可列印時會報錯
-
6.元組相關操作方法
-
型別轉換
tuple(其他型別資料)
支持for回圈的資料型別都支持轉成元組:串列、字典、字串、集合
print(tuple([1,2,3])) # (1,2,3) print(tuple({'name':'張'})) # ('name',) print(tuple((1,2,3))) # (1,2,3) print(tuple({1,2,3})) # (1,2,3) -
常用內置方法
-
注意:
注意: 1.元組內如果只有一個資料值,結尾要跟逗號 t1 = () #空元組 t1 = (1,) 2.元組內索引系結的記憶體地址不能被修改#除非是可變型別[元組里面的串列就可以增加或者洗掉] t1 = (1, 2, 3, [1, 2]) # t1.append(5) #結果會報錯! t1[-1].append(5) print(t1) # (1, 2, 3, [1, 2, 5]) 3.元組不能新增或洗掉資料#除非是可變型別 -
1.索引取值
t1=(1,2,3,4,5) print(t1[0]) # 1 print(t1[-1]) # 5 -
2.切片操作
t1=(1,2,3,4,5) print(t1[:]) # (1,2,3,4,5) 取所有值 print(t1[:3]) # (1,2,3) 取索引0~索引2的值 print(t1[1:3]) # (2,3) 取索引1~索引2的值 print(t1[-3:-1]) # (3,4) 取倒數第二(包含)~倒數第一(不包含)的值 -
3.切片間隔/方向
t1=(1,2,3,4,5,6) print(t1[0:5:1]) # (1,2,3,4,5) 取索引0~索引4的值且間隔1 print(t1[0:5:2]) # (1,3,5) 取索引0~索引4的值且間隔2 print(t1[::2]) # (1,3,5) 取所有值且間隔2 print(t1[::-1]) # (6,5,4,3,2,1) 取所有值并改變字串方向(后進先出) -
4.統計資料值個數
len()想要統計的資料
t1=(1,2,3,4,5,6) print(len(t1)) # 6 -
5.統計某個資料值出現的次數
count()
t1=(1,2,3,4,5,6) print(t1.count(2)) # 1 -
6.統計元組內對應索引值
index()
t1=(1,2,3,4,5,6) print(t1.index(1)) # 0
-
7.集合相關操作方法
-
型別轉換
set(其他型別資料)
print(set('abc')) # {'a','b','c'} 字串 print(set([1,2,3])) # {1, 2, 3} 串列 print(set({'name':'jason'})) # {'name'} 字典 print(set((1,2,3))) # {1, 2, 3} 元組 整型、浮點型、布林值會報錯 注意: 1.集合里的'資料值'必須是不可變型別(整型、浮點型、字串、元組) 2.集合內是無序的 沒有索引概念 3.如果想單獨取資料值應該轉成串列去取, -
常用內置方法
集合不常用 只在去重、關系運算時才會考慮使用集合
-
1.去重
先轉成串列在轉成集合
eg:把以下串列去重 l1=[1,2,3,2,1,3] s1=set(l1) #把該串列轉成集合 l1=list(s1) #把該集合再轉回串列 print(l1) #結果為:[1, 2, 3] '集合的去重是無序的,有時候無法保留原先順序' -
2.關系運算
常用做差異校驗 eg:模擬兩個人的好友 f1 = {'jason','tony','oscar','jerry'} f2 = {'kevin','jerry','jason','lili'} 1.求f1和f2的共同好友 print(f1 & f2) #{'jason','jerry'} 2.求是f1單獨認識的好友 print(f1 - f2)#{'oscar','tony'} 3.求f1和f2所有的好友 print(f1 | f2)#{'oscar','jason','kevin','lili','tony','jerry'} 4.求f1和f2各自單獨認識的好友 print(f1 ^ f2)#{'lili','oscar','tony','kevin'} 5.父集、子集 print(f1 < f2)#false print(f1 > f2)#false '集合在做父子比較時是依照誰包含誰來判斷'
-
可變型別與不可變型別
| 可變型別 | 不可變型別 |
|---|---|
| 字典、串列、集合 | 整型、浮點型、字串、布林值 |
| 值改變、記憶體地址不變(改自身) | 值改變、記憶體地址也變(產生一個新的結果) |
1.不可變型別
#值改變,記憶體地址也變(產生新的結果)
s1='$$jason$$'
s1.strip('$')
'由于產生的是新的結果,所以列印原字串沒有變化'
print(s1)
#結果為:$$jason$$
'因為產生了新的結果,所以可以列印出來(可直接列印出來,也可以賦值一個變數名接收后列印)''
print(s1.strip('$'))
#結果為:jason
2.可變型別
#值改變,記憶體地址不變(改自身)
l1=[11,22,33]
l1.append('z')
'由于改的是自身 所以列印原本的串列就是修改后的串列'
print(l1)
#結果為:[11,22,33,'z']
'因為沒有產生新的結果,所以列印出來的是None'
print(l1.append('z'))
#結果為:None
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/542137.html
標籤:其他
上一篇:java新版本配置環境變數那些事
