python-07.各種對象各種類
基本數據類型詳解
一、str 字符串
1、capitalize 字符串首字母大寫
自身不變,會生成一個新的值
1 name = ‘zhangsan‘ 2 new_name = name.capitalize() 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 zhangsan 8 Zhangsan
2、casefold 將所有大寫變小寫,casefold可以使任何語言的大寫變小寫
1 name = ‘SunChenGuang‘ 2 new_name = name.casefold() 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 SunChenGuang 8 sunchenguang
3、lower 將所有大寫變小寫,lower只可以改變英文
1 name = ‘SunChenGuang‘ 2 new_name = name.lower() 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 SunChenGuang 8 sunchenguang
4、center 文本居中
# 參數1: 表示總長度
# 參數2:空白處填充的字符(長度為1)
1 name = ‘SunChenGuang‘ 2 new_name = name.center(20,‘#‘) 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 SunChenGuang 8 ####SunChenGuang#####
5、count 統計傳入值在字符串中出現的次數
# 參數1: 要查找的值(子序列)
# 參數2: 起始位置(索引)
# 參數3: 結束位置(索引)
1 neme = ‘SunChenGuang‘ 2 v1 = neme.count(‘g‘) 3 v2 = neme.count(‘g‘,0,6) 4 v3 = neme.count(‘g‘,3,9) 5 print(neme) 6 print(v1) 7 print(v2) 8 print(v3) 9 10 輸出內容: 11 SunChenGuang 12 3 13 1 14 2
6、endswith 是否以xx結尾,返回值是True或False
1 name = ‘sunchegnuang‘ 2 new_name = name.endswith(‘ong‘) 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 sunchenguang 8 True
7、startswith 是否以xx開頭,返回值是True或False
1 name = ‘sunchenguang‘ 2 new_name = name.startswith(‘gu‘) 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 sunchenguang 8 True
8、expandtabs 找到制表符\t,進行替換(包含前面的值)
# 參數默認是8
1 name = ‘sun\tchen\tguang\nsun\tchen\tlguang‘ 2 new_name = name.expandtabs(10) 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 sun chen guang 8 sun chen guang 9 sun chen guang 10 sun chen guang
9、 找到指定子序列的索引位置
find:存在返回索引位置,不存在返回 -1
index:存在返回索引位置,不存在 報錯
1 name = ‘sunchegnaung‘ 2 v1 = name.find(‘c‘) 3 v2 = name.index(‘s‘) 4 v3 = name.find(‘x‘) 5 # v4 = name.index(‘x‘) 6 print(v1,v2,v3) 7 8 輸出內容: 9 3 3 -1
10、字符串格式化
% :根據百分號
1 v1 = ‘姓名:%s;年齡:%s;性別:%s‘ 2 new_v1 = v1%(‘孫晨光‘,20,‘男‘) 3 print(new_v1) 4 5 輸出內容: 6 姓名:孫晨光;年齡:20;性別:男
format :根據下標
1 v2 = ‘姓名:{0};年齡:{1};性別:{2}‘ 2 new_v2 = v2.format(‘孫晨光‘,20,‘男‘) 3 print(new_v2) 4 5 輸出內容: 6 姓名:孫晨光;年齡:20;性別:男
format_map :根據鍵值對
1 v3 = ‘姓名:{name};年齡:{age};性別:{gender}‘ 2 new_v3 = v3.format_map({‘name‘:‘張三‘,‘age‘:20,‘gender‘:‘男‘}) 3 print(new_v3) 4 5 輸出內容: 6 姓名:張三;年齡:20;性別:男
11、isalnum 判斷是否是數字、字母、漢字
# 數字、字母、漢字 True
# 特殊符號 False
1 name1 = ‘水電費12‘ 2 name2 = ‘水電費12‘ 3 v1 = name1.isalnum() 4 v2 = name2.isalnum() 5 print(v1,v2) 6 7 輸出內容: 8 True False
12、判斷是否是數字
isdecimal # ‘123‘
isdigit # ‘123‘,‘②‘
isnumeric # ‘123‘,‘二‘,‘②‘
1 num1 = "123" 2 num2 = "②" 3 num3 = "二" 4 v1 = num1.isdecimal() # ‘123‘ 5 v2 = num2.isdigit() # ‘123‘,‘②‘ 6 v3 = num3.isnumeric() # ‘123‘,‘二‘,‘②‘ 7 print(v1,v2,v3) 8 9 輸出內容: 10 True True True
13、isidentifier 判斷變量名是否合法
1 name1 = ‘guoshaolong1‘ 2 name2 = ‘1guoshaolong‘ 3 v1 = name1.isidentifier() 4 v2 = name2.isidentifier() 5 print(v1,v2) 6 7 輸出內容: 8 True False
14、islower 判斷是否全部是小寫
1 name1 = ‘zhangsan‘ 2 name2 = ‘Zhangsan‘ 3 v1 = name1.islower() #判斷是否全部是小寫 4 v2 = name2.islower() #判斷是否全部是小寫 5 print(v1,v2) 6 7 輸出內容: 8 True False
isupper 判斷是否全部是大寫
1 name3 = ‘ZHANGSAN‘ 2 name4 = ‘zhangSAn‘ 3 v3 = name3.isupper() #判斷是否全部是大寫 4 v4 = name4.isupper() #判斷是否全部是大寫 5 print(v3,v4) 6 7 輸出內容: 8 True False
15、upper 全部變大寫
1 name = ‘sunchenguang‘ 2 new_name = name.upper() 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 sunchenguang 8 ZHANGSAN
lower 全部變小寫
1 name = ‘ZHANGSAN‘ 2 new_name = name.lower() 3 print(name) 4 print(new_name) 5 6 輸出內容: 7 ZHANGSAN 8 zhangsan
16、isprintable 是否包含隱含的\n \t
#不包含返回True ,包含返回False
1 name1 = ‘zhangsan‘ 2 name2 = ‘zhang\nsan‘ 3 v1 = name1.isprintable() 4 v2 = name2.isprintable() 5 print(v1,v2) 6 7 輸出內容: 8 True False
17、isspace 是否全部是空格
1 name = ‘ ‘ 2 v = name.isspace() 3 print(v) 4 5 輸出內容: 6 True
18、元素拼接(元素字符串) 重要程度五顆星*****
1 name = ‘zhangsan‘ 2 v1 = "_".join(name) 3 print(v1) 4 5 name_list = [‘張三‘,‘李四‘,‘王五‘] 6 v2 = "*".join(name_list) 7 print(v2) 8 9 輸出內容: 10 z_h_a_n_g_s_a_n 11 張三*李四*王五
19、左右填充
center 文本居中(詳見第4個)
rjust 右填充
ljust 左填充
1 name = ‘zhangsan‘ 2 v1 = name.rjust(20 ,"*") #右填充 3 v2 = name.ljust(20 ,"*") #左填充 4 print(v1) 5 print(v2) 6 7 輸出內容: 8 *********zhangsan 9 zhangsan*********
20、對應關系 + 翻譯
1 m = str.maketrans(‘aeiou‘,‘12345‘) 2 name = ‘abcdefghijklmnopqrstuvwxyz‘ 3 v = name.translate(m) 4 print(v) 5 6 輸出內容: 7 1bcd2fgh3jklmn4pqrst5vwxyz
21、partition 分割,保留分割的元素
1 name = ‘zhang.san.si‘
2 v = name.partition(‘.‘) 3 print(v) 4 5 輸出內容: 6 (‘zhang‘, ‘.‘, ‘san.si‘)
22、replace 替換
1 name = ‘zhang.san.si‘ 2 v1 = name.replace(‘.‘,‘*‘) 3 v2 = name.replace(‘.‘,‘*‘,1) 4 print(v1) 5 print(v2) 6 7 輸出內容 : 8 zhang*san*si 9 zhang*san.si
23、strip 移除空白,\n,\t
1 name = ‘ zhangsan\t‘ 2 v = name.strip() 3 print(name) 4 print(v) 5 6 輸出內容: 7 zhangsan 8 zhangsan
24、swapcase 大小寫轉換
1 name = ‘ZhangSan‘ 2 v = name.swapcase() 3 print(name) 4 print(v) 5 6 輸出內容: 7 ZhangSan 8 zHANGsAN
25、zfill 往前面填充0
1 name = ‘zhangsan‘ 2 v = name.zfill(20) 3 print(v) 4 5 輸出內容: 6 000000000zhangsan
26、encode 轉換成字節
1 name = ‘張三‘ 2 v1 = name.encode(encoding=‘utf-8‘) 3 v2 = name.encode(encoding=‘gbk‘) 4 print(v1) 5 print(v2) 6 7 輸出內容: 8 b‘\xe9\x83\xad\xe5\xb0\x91\xe9\xbe\x99‘ 9 b‘\xb9\xf9\xc9\xd9\xc1\xfa‘
二、int 整數
1、bit_length 當前整數的二進制表示,最少位數
1 age1 = 1 2 age2 = 10 3 age3 = 100 4 print(age1.bit_length()) 5 print(age2.bit_length()) 6 print(age3.bit_length()) 7 8 輸出內容: 9 1 10 4 11 7
2、to_bytes 獲取當前數據的字節表示
1 age = 20 2 v1 = age.to_bytes(10,byteorder=‘big‘) 3 v2 = age.to_bytes(10,byteorder=‘little‘) 4 print(v1) 5 print(v2) 6 7 輸出內容: 8 b‘\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14‘ 9 b‘\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00‘
三、bool 布爾值
1、只有True或False
1 v1 = 0 2 v2 = 1 3 v3 = -1 4 v4 = ‘‘ 5 v5 = [] 6 print(bool(v1)) 7 print(bool(v2)) 8 print(bool(v3)) 9 print(bool(v4)) 10 print(bool(v5)) 11 12 輸出內容: 13 False 14 True 15 True 16 False 17 False
四、list 列表
1、append 追加
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.append(‘老五‘) 3 print(user_list) 4 5 輸出內容: 6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老五‘]
2、clear 清空
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.clear() 3 print(user_list) 4 5 輸出內容: 6 []
3、copy 拷貝(淺拷貝)
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.copy() 3 print(user_list) 4 print(v) 5 6 輸出內容: 7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘] 8 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘]
4、count 計數
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘,‘老三‘] 2 v = user_list.count(‘老三‘) 3 print(user_list) 4 print(v) 5 6 輸出內容: 7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老三‘] 8 2
5、extend 擴展原列表
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.extend([‘郭少龍‘,‘少龍‘]) 3 print(user_list) 4 5 輸出內容: 6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘郭少龍‘, ‘少龍‘]
6、index 查找元素索引,不存在則報錯
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.index(‘老大‘) 3 print(v) 4 5 輸出內容: 6 0
7、pop 刪除並且獲取元素 - 根據索引刪除
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 v = user_list.pop(1) 3 print(v) 4 print(user_list) 5 6 輸出內容: 7 老二 8 [‘老大‘, ‘老三‘, ‘老四‘]
8、remove 刪除 - 根據值刪除
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.remove(‘老二‘) 3 print(user_list) 4 5 輸出內容: 6 [‘老大‘, ‘老三‘, ‘老四‘]
9、reverse 翻轉
1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘] 2 user_list.reverse() 3 print(user_list) 4 5 輸出內容: 6 [‘老四‘, ‘老三‘, ‘老二‘, ‘老大‘]
10、sort 排序
1 正序: 2 nums = [5,4,3,2,6,10,7] 3 nums.sort() 4 print(nums) 5 6 輸出內容: 7 [2, 3, 4, 5, 6, 7, 10] 8 9 10 倒序: 11 nums = [5,4,3,2,6,10,7] 12 nums.sort(reverse=True) 13 print(nums) 14 15 輸出內容: 16 [10, 7, 6, 5, 4, 3, 2]
11、補充內容:range
1、輸出1-10
1 for i in range(1,11): 2 print(i) 3 4 輸出內容: 5 1 6 2 7 3 8 4 9 5 10 6 11 7 12 8 13 9 14 10
2、輸出1-10 奇數
1 for i in range(1,11,2): 2 print(i) 3 4 輸出內容: 5 1 6 3 7 5 8 7 9 9
3、倒序輸出10-1
1 for i in range(10,0,-1): 2 print(i) 3 4 輸出內容: 5 10 6 9 7 8 8 7 9 6 10 5 11 4 12 3 13 2 14 1
4、輸出列表內容+序號
1 name = [‘張三‘,‘李四‘,‘王五‘] 2 for i in range(0,len(name)): 3 print(i+1,name[i]) 4 5 輸出內容: 6 1 張三 7 2 李四 8 3 王五
12、補充內容:enumerate 額外生成一列有序的數字
1 name = [‘張三‘,‘李四‘,‘王五‘] 2 for i,ele in enumerate(name,1): 3 print(i,ele) 4 5 輸出內容: 6 1 張三 7 2 李四 8 3 王五
五、tuple:元組(不可被修改的列表;不可變類型)
# 元組如果只有一個值,需要在最後加逗號
1、count 獲取個數
1 user_tuple = (‘張三‘,‘李四‘,‘王五‘,‘張三‘,) 2 v = user_tuple.count(‘張三‘) 3 print(v) 4 5 輸出內容: 6 2
2、index 獲取值的第一個索引位置
1 user_tuple = (‘張三‘,‘李四‘,‘王五‘,‘張三‘,) 2 v = user_tuple.index(‘張三‘) 3 print(v) 4 5 輸出內容: 6 0
六、dict:字典
1、clear 清空
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.clear() 3 print(dic) 4 5 輸出內容: 6 {}
2、copy 淺拷貝
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v = dic.copy() 3 print(dic) 4 print(v) 5 6 輸出內容: 7 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} 8 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
3、get 根據key獲取指定的value;不存在不報錯
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v1 = dic.get(‘k111‘,‘111‘) 3 print(v1) 4 5 輸出內容: 6 111
4、pop 刪除並獲取對應的value值
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v1 = dic.pop(‘k1‘) 3 print(v1) 4 5 輸出內容: 6 v1
5、popitem 隨機刪除鍵值對,並獲取到刪除的鍵值
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 v = dic.popitem() 3 print(v) 4 print(dic) 5 6 輸出內容: 7 (‘k2‘, ‘v2‘) 8 {‘k1‘: ‘v1‘}
6、setdefault 增加,如果存在則不做操作
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.setdefault(‘k3‘,‘v3‘) 3 print(dic) 4 5 輸出內容: 6 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘}
7、update 批量增加或修改
1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘} 2 dic.update({‘k3‘:‘v3‘,‘k1‘:‘v33333‘}) 3 print(dic) 4 5 輸出內容: 6 {‘k2‘: ‘v2‘, ‘k1‘: ‘v33333‘, ‘k3‘: ‘v3‘}
七、set,集合(不可重復的列表;可變類型)
1、s1中存在,s2中不存在
1 s1 = {"a",‘b‘,‘c‘,‘d‘,‘e‘} 2 s2 = {"a",‘b‘,‘c‘,‘d‘} 3 v = s1.difference(s2) 4 print(v) 5 #### s1中存在,s2中不存在,然後對s1清空,然後在重新復制 6 s1.difference_update(s2) 7 print(s1) 8 9 輸出內容: 10 {‘e‘} 11 {‘e‘}
2、s2中存在,s1中不存在
1 s1 = {"a",‘b‘,‘d‘,‘e‘} 2 s2 = {"a",‘b‘,‘c‘,‘d‘} 3 v = s2.difference(s1) 4 print(v) 5 6 輸出內容: 7 {‘c‘}
python-07.各種對象各種類