python基礎數據類型: int bool str list tuple dict
阿新 • • 發佈:2018-11-04
超過 split 次數 替換 空格 rip 大小寫 字符串搜索 dac
一. int
bit_length() 計算十進制轉化成二進制的有效位數
1 v = 11 2 data = v.bit_length() 3 print(data)View Code
二. bool
布爾值就兩種:True,False。就是反應條件的正確與否。
真 1 True。
假 0 False。
1 s1 = ‘王大錘‘ 2 s2 = ‘ ‘ # 字符串中有空格 3 s3 = ‘‘ 4 print(bool(s1)) # 結果為True 5 print(bool(s2)) # 結果為True 6 print(bool(s3)) #View Code結果為false
bool轉換成字符串: bool ---> str
1 print(str(True), type(str(True))) 2 # 執行結果為 True <class ‘str‘> 3 # 雖然結果還是true, 但是這時已轉換成字符串格式View Code
三. str
1. 字符串的索引與切片
索引即下標,就是字符串組成的元素從第一個開始,初始索引為0以此類推
1 a = ‘ABCDEFGHIJK‘ 2 print(a[0]) # 結果為 A,因為從0開始,所以0為第一個 3 print(a[3]) #View Code結果為 D,因為從0開始,所以3為第4個 4 print(a[5]) # 結果為 F,因為從0開始,所以5為第6個 5 print(a[7]) # 結果為 H,因為從0開始,所以7為第8個
2. 切片就是通過索引(索引:結尾索引+1 :步長)截取字符串的一段,形成新的字符串(原則就是顧頭不顧腚)
1 a = ‘ABCDEFGHIJK‘ 2 print(a[0:3]) # 結果為ABC 3 print(a[2:5]) # 結果為CDE 4 print(a[0:]) # 0:表示默認到最後,可以取到k元素 結果為ABCDEFGHIJK 5 print(a[0:-1]) #View Code-1 是列表中最後一個元素的索引,但是要滿足顧頭不顧腚的原則,所以取不到K元素,結果為ABCDEFGHIJ 6 print(a[0:5:2]) # 加步長,從0-5元素,步長為2,結果為:ACE 7 print(a[5:0:-2]) # 反向加步長,從左第5個元素起至末尾,步長為2,結果為:FDB
3. 常用方法: 對字符串操作形成的都是新的字符串
1 # captalize, swapcase, title 2 name = ‘daChui‘ 3 print(name.capitalize()) # 首字母大寫,其他小寫,已大寫的也小寫 4 print(name.swapcase()) # 大小寫翻轉 5 msg=‘hello word, zhenhao!‘ 6 print(msg.title()) # 每個單詞的首字母大寫 7 8 # center 內同居中,設置總長度,空白處填充 9 a1 = ‘dachui‘ 10 a2 = a1.center(10, "*") # 設置總長度為10,不足的空白處用*填充 11 print(a2) # 結果為**dachui** 12 13 # title() 非字母隔開的‘單詞‘首字母大寫 14 ss = ‘hello me2dachui*word‘ 15 s4 = ss.title() 16 print(s4) # 結果為 Hello Me2Dachui*Word , 以非字母*隔開的單詞也要首字母大寫 17 18 # upper() 全大寫 lower() 全小寫 19 s = ‘daChui‘ 20 s5 = s.upper() 21 print(s5) # 結果為DACHUI 22 s6 = s.lower() 23 print(s6) # 結果為dachui 24 25 26 # count 數字符串中的元素出現的個數。 27 ret3 = a1.count("a",0,4) # 可切片 28 print(ret3) 29 30 a2 = "hqw\t" 31 # \t前面的補全 32 # 默認將一個tab鍵變成8個空格,如果tab前面的字符長度不足8個,則補全8個,如果tab鍵前面的字符長度超過8個不足16個則補全16個,以此類推每次補全8個。 33 ret4 = a2.expandtabs() 34 print(ret4) 35 36 37 # startswith 判斷是否以...開頭 38 # endswith 判斷是否以...結尾 39 a4 = "dkfjdkfasf54" 40 ret4 = a4.endswith(‘jdk‘, 3, 6) # 顧頭不顧腚,到第幾個字符,就用索引號-1 41 print(ret4) # 返回的是布爾值true 42 ret5 = a4.startswith(‘jdk‘, 3) # 以...開始的,可以省略末尾索引 43 print(ret5) # 返回的是布爾值 true 44 ret6 = a4.endswith(‘f54‘, 9) # 以...結束的,可以省略末尾索引 45 print(ret6) # 返回的是布爾值true 46 ret7 = a4.startswith("kfj", 1, 4) 47 print(ret7) # 返回的是布爾值true 48 49 50 # find 通過元素找索引,找不到返回-1 *** 51 # index 通過元素找索引,找不到報錯 *** 52 s = ‘oldboy‘ 53 print(s.find(‘d‘)) # 結果為 2 54 print(s.find(‘o‘)) # 結果為 0 55 print(s.find(‘A‘)) # 結果為 -1,因為沒找到 56 print(s.index(‘d‘)) # 結果為 2 57 print(s.index(‘A‘)) # 結果報錯 58 print(s.find("db", 1, 4)) # 結果為2,只返回d的索引 59 60 61 # split 以什麽分割,最終形成一個列表此列表不含有這個分割的元素。可將str 轉換為 list 62 ret9 = ‘title, Tilte, atre,‘.split(‘t‘) 63 print(ret9) # 結果為: [‘‘, ‘i‘, ‘le, Til‘, ‘e, a‘, ‘re,‘] 64 ret91 = ‘title, Tilte, atre,‘.rsplit(‘t‘, 1) 65 print(ret91) # 結果為: [‘title, Tilte, a‘, ‘re,‘] ,參數為1, 只分割右邊第一個 66 s = ‘我 是 誰‘ 67 print(s.split()) # 默認按照空格分割,結果為: [‘我‘, ‘是‘, ‘誰‘] 68 69 70 # format的三種玩法 格式化輸出 71 res = ‘{} {} {}‘.format(‘egon‘, 18, ‘male‘) 72 print(res) # 結果為: egon 18 male 73 res1 = ‘{1} {0} {1}‘.format(‘egon‘, 18, ‘male‘) 74 print(res1) # 結果為: 18 egon 18 75 res2 = ‘{name} {age} {sex}‘.format(sex=‘male‘, name=‘egon‘, age=18) 76 print(res2) # 結果為: egon 18 male 77 78 # strip 默認去除str前後兩端換行符,制表符 空格 *** 中文 79 name = ‘*egon**‘ 80 print(name.strip(‘*‘)) # 去除所有的* 81 print(name.lstrip(‘*‘)) # 只去除左邊的* 82 print(name.rstrip(‘*‘)) # 只去除右邊的* 83 84 # replace 把字符串中的 舊字符串 替換成 新字符串 85 ame = ‘我 是 大魚 我 是 大魚‘ 86 print(name.replace(‘大魚‘, ‘小美‘)) # 結果為: 我 是 小美 我 是 小美 87 print(name.replace(‘大魚‘, ‘小美‘, 1)) # 結果為: 我 是 小美 我 是 大魚,加了參數1後,只替換了第一個元素 88 89 90 # join 將原有的 列表 或 字符串 中的 元素 以指定的 字符 連接生成一個新的 字符串,用途將 list 轉換為 str 91 s = ‘-*—‘ 92 s1 = ‘bcd‘ 93 s2 = [‘b‘, ‘c‘, ‘d‘] 94 print(‘_‘.join(s1)) # 結果為 b_c_d 95 print(s.join(s1)) # 結果為 b-*—c-*—d 96 print(s.join(s2)) # 結果為 b-*—c-*—d ,列表(list)也可以用此方法 97 print(s1.join(s)) # 結果為-bcd*bcd—,因為s中的元素被s1連接的時候, 98 print(‘x‘.join(s1)) # 結果為 bxcxd 99 l1 = [‘wo‘, ‘shi‘, ‘shui‘] # 轉換為字符換 ‘wo shi shui‘ 100 print(‘ ‘.join(l1)) # 結果為: wo shi shui 101 102 103 # is系列 104 name=‘dachui456‘ 105 print(name.isalnum()) # 字符串由字母或數字組成 106 print(name.isalpha()) # 字符串只由字母組成 107 print(name.isdigit()) # 字符串只由數字組成 str ---> int 可以作為一個判斷條件 108 109 # 公共方法 len count 110 # len 測量個數,返回對象(字符、列表、元組等)長度或項目個數 111 s = ‘qwer123 qwq‘ 112 ss = ‘‘ 113 print(len(s)) # 結果為11,空格也會統計 114 print(len(ss)) # 結果為0,統計不到不會報錯,會返回0 115 # count 某個元素出現的次數,可選參數為在字符串搜索的開始與結束位置 116 print(s.count(‘q‘)) # 結果為3 117 print(s.count(‘4‘)) # 結果為0,統計不到不會報錯,會返回0View Code
四. tuple
元組被稱為只讀列表,即數據可以被查詢,但不能被修改,所以,字符串的切片操作同樣適用於元組。例:(1,2,3)("a","b","c")
tu = (1, True, [12, 3], ‘afdlsfa‘)
可以索引,可以切片(步長)。
不能增刪改(兒子不能,孫子有可能),只能查詢。
index count for 循環。
1 tu = (1, True, [12, 3], ‘afdlsfa‘) 2 tu[2][0] = 5 # tu中的第2個索引中的第0個索引的值,即12 修改為 5 3 print(tu) # 結果為:(1, True, [5, 3], ‘afdlsfa‘), 值已被修改,即孫子可以被改View Code
五. list
列表相比於字符串,不僅可以儲存不同的數據類型,而且可以儲存大量數據,32位python的限制是 536870912 個元素,64位python的限制是 1152921504606846975 個元素。而且列表是有序的,有索引值,可切片,方便取值。
1. 索引切片。(與字符串一樣)
python基礎數據類型: int bool str list tuple dict