1. 程式人生 > >python基礎數據類型: int bool str list tuple dict

python基礎數據類型: int bool str list tuple dict

超過 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))  #
結果為false
View Code

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])  #
結果為 D,因為從0開始,所以3為第4個 4 print(a[5]) # 結果為 F,因為從0開始,所以5為第6個 5 print(a[7]) # 結果為 H,因為從0開始,所以7為第8個
View Code

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])  #
-1 是列表中最後一個元素的索引,但是要滿足顧頭不顧腚的原則,所以取不到K元素,結果為ABCDEFGHIJ 6 print(a[0:5:2]) # 加步長,從0-5元素,步長為2,結果為:ACE 7 print(a[5:0:-2]) # 反向加步長,從左第5個元素起至末尾,步長為2,結果為:FDB
View Code

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,統計不到不會報錯,會返回0
View 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