17-Python常用資料型別操作1
摘要:
1.數值
表現形式
整數(int)
二進位制
0b
+
二進位制數
...
1.數值
表現形式 整數(int) 二進位制 0b + 二進位制數 只能包含01 八進位制 0 / 0o + 八進位制數 只能包含0-7 十進位制 十進位制數 只能包含0-9 十六進位制 0x + 十六進位制數 只能包含0-9, a-f 浮點數(float) 由整數部分和小數部分組成 168.2 可以使用科學計數法表示 1.682e2 1.682 * 10² 複數(complex) 由實部和虛部組成 a + bj complex(a, b) a, b 都是浮點數 注意 Python3的整型, 可以自動的調整大小, 當做Long型別使用 所以, Python3中, 沒有Python2中的Long型別 分正負 6 -6 進位制轉換 進位制的概念 進位的制度 逢x進1 x進位制 常用進位制 二進位制 逢2進1 八進位制 逢8進1 十進位制 逢10進1 十六進位制 逢16進1 進位制轉換 其他進位制 -> 十進位制 x進位制 111101 1 * x ^ 0 + 0 * x ^ 1 十進位制 -> 其他進位制 規律 整除倒取餘 二進位制 <-> 八進位制 整合3位為1位 二進位制 <-> 十六進位制 整合4位為1位 常用操作 適用於幾乎所有Python運算子 算術運算子 + 加法運算子 - 減法運算子 * 乘法運算子 ** 冪運算子 / 除法運算子 // 整除運算子 % 求模運算子 = 賦值運算子 a = 10 b = a + c a, b, c = 10, 20, 30 鏈式賦值 a = b = c = 3 注意 除以0 優先順序問題 ()使用 整除和求餘的應用場景 行列 複合運算子 += -= *= %= **= //= a ax= 值 a = a x 值 比較運算子 > < != <> Python2.x版本支援 等同於!= 以後統一使用!=表示不等於 >= <= == is 比對唯一標識 鏈狀比較運算子 10 < a <=66 注意 整型比對 == is 案例 256 True True 257 True False 解答 出於對效能的考慮,Python內部做了很多的優化工作,對於整數物件,Python把一些頻繁使用的整數物件快取起來,儲存到一個叫small_ints的連結串列中,在Python的整個生命週期內,任何需要引用這些整數物件的地方,都不再重新建立新的物件,而是直接引用快取中的物件。Python把這些可能頻繁使用的整數物件規定在範圍[-5, 256]之間的小物件放在small_ints中,但凡是需要用些小整數時,就從這裡面取,不再去臨時建立新的物件。因為257不再小整數範圍內,因此儘管a和b的值是一樣,但是他們在Python內部卻是以兩個獨立的物件存在的,各自為政,互不干涉。 。Python內部為了將效能進一步的提高,凡是在一個程式碼塊中建立的整數物件,如果存在一個值與其相同的物件於該程式碼塊中了,那麼就直接引用,否則建立一個新的物件出來。Python出於對效能的考慮,但凡是不可變物件,在同一個程式碼塊中的物件,只有是值相同的物件,就不會重複建立,而是直接引用已經存在的物件。因此,不僅是整數物件,還有字串物件也遵循同樣的原則。所以 a is b就理所當然的返回True了,而c和a不在同一個程式碼塊中,因此在Python內部建立了兩個值都是257的物件。 邏輯運算子 not 非 取反 真的變假 假的變真 and 與 一假全假 or 或 一真全真 注意 非布林型別的值, 如果作為真假來判定, 一般都是非零即真, 非空即真 整個邏輯表示式的結果不一定只是True和False 注意 當int和float型別進行算術運算時, 結果會被提升為float型別 數值型別如果參與邏輯運算, 參照的原則是 非零即真 數學函式 部分函式使用前注意 匯入對應模組 例如: import math 使用函式時 模組名.函式名(引數) math.fabs(-10) abs(num) 返回數字的絕對值 max(num1, num2...) 返回序列中的最大元素 min(num1, num2...) 返回序列中的最小元素 round(num[, n]) 四捨五入 , n 表示四捨五入的位數 可以省略 pow(x, y) 返回 x 的 y次冪 x ** y
---------------------分割線-------------------
ceil(num) 上取整 floor(num) 下取整 sqrt(num) 開平方 log(x, base) 以base為基數, x的對數 內建函式 math模組函式 隨機函式 random() [0, 1) 範圍之內的隨機小數 choice(seq) 從一個序列中, 隨機挑選一個數值 random.choice((1, 3, 6, 8)) uniform(x, y) [x, y] 範圍之內的隨機小數 randint(x, y) [x, y] 範圍之內的隨機整數 randrange(start, stop=None, step=1) 給定區間內的一隨機整數 [start, stop) random模組 三角函式 sin(x) 正弦 cos(x) 餘弦 tan(x) 正切 asin(x) 反正弦 acos(x) 反餘弦 atan(x) 反正切 degrees(x) 弧度 -> 角度 radians(x) 角度 -> 弧度 math模組 數學常量 pi 數學中的π 3.14...
2.布林
bool True False 是int型別的子類 issubclass(bool, int) 應用場景 當做int型別,參與相關運算 比較表示式的運算結果 3 > 2 可以用於if判定條件和while迴圈條件
3.字串
概念 由單個字元組成的一個集合 形式 非原始字串 使用單引號包含的 'abc' 使用雙引號包含的 "abc" 使用3個單引號 ''' abc ''' 使用3個雙引號 """ abc """ 原始字串 使用單引號包含的 r'abc' 使用雙引號包含的 r"abc" 使用3個單引號 r''' abc ''' 使用3個雙引號 r""" abc """ 概念補充 轉義符 概念 通過轉換某個指定的字元, 使它具備特殊的含義 常見轉義符 \(在行尾時)續行符 \'單引號 \"雙引號 \n換行 \t橫向製表符 各個形式的特點 單/雙引號 混合使用可以避免使用引號轉義符 一般內容需要寫成一行 跨行 需要連行符 \ name = "s \ z" 使用小括號 name = ("s" "z") 三引號 可以直接跨行書寫 可用於註釋 字串一般操作 字串拼接 方式1 str1 + str2 例如: "wangzha" + "shunzi" "wangzhashunzi" 方式2 str1str2 直接把兩個字串放一塊 例如: "wangzha""shunzi" "wangzhashunzi" 方式3 ”xxx%sxxx“%(a+b) 方式4 字串乘法 "abc" * 3 "abcabcabc" 字串切片 概念 獲取一個字串的某個片段 獲取某一個字元 name[下標] 下標 字串中每個字元的編號 座位編號 注意 下標越界 負數下標 如果為負數, 則會從尾部開始定位 最後一個字元為 -1 獲取一個字串片段 name[起始:結束:步長] 注意 獲取範圍 [起始, 結束) 起始包含 結束不包含 預設值 起始預設值: 0 結束預設值: len(name) 整個字串的長度 步長預設值: 1 獲取順序 步長 > 0 從左邊到右 步長 < 0 從右往左 注意: 不能從頭部跳到尾部, 或者從尾部跳到頭部 特殊案例 反轉字串 字串[::-1] 字串函式操作 使用方式 小旗子的代表是內建函式, 直接使用 不帶小旗子的屬於物件方法 物件.方法(引數) len 作用 計算字串的字元個數 語法 len(name) 引數 字串 返回值 整型 字元個數 find 作用 查詢子串索引位置 語法 find(sub, start=0, end=len(str)) 引數 引數1-sub 需要檢索的字串 引數2-start 檢索的起始位置 可省略, 預設0 引數3-end 檢索的結束位置 可省略, 預設len(str) 返回值 找到了 指定索引 整型 找不到 -1 注意 從左到右進行查詢 找到後立即停止 rfind 功能使用, 同find 區別 從右往左進行查詢 index 作用 獲取子串索引位置 語法 index(sub, start=0, end=len(str)) 引數 引數1-sub 需要檢索的字串 引數2-start 檢索的起始位置 可省略, 預設0 引數3-end 檢索的結束位置 可省略, 預設len(str) 返回值 找到了 指定索引 整型 找不到 異常 注意 從左到右進行查詢 找到後立即停止 rindex 功能使用, 同index 區別 從右往左進行查詢 count 作用 計算某個子字串的出現個數 語法 count(sub, start=0, end=len(str)) 引數 引數1-sub 需要檢索的字串 引數2-start 檢索的起始位置 可省略, 預設0 引數3-end 檢索的結束位置 可省略, 預設len(str) 返回值 子字串出現的個數 整型 replace 作用 使用給定的新字串 替換原字串中的 舊字串 語法 replace(old, new[, count]) 引數 引數1-old 需要被替換的舊字串 引數2-new 替換後的新字串 引數3-count 替換的個數 可省略, 表示替換全部 返回值 替換後的結果字串 注意 並不會修改原字串本身 capitalize 作用 將字串首字母變為大寫 語法 capitalize() 引數 無 返回值 首字元大寫後的新字串 注意 並不會修改原字串本身 title 作用 將字串每個單詞的首字母變為大寫 語法 title() 引數 無 返回值 每個單詞首字元大寫後的新字串 注意 並不會修改原字串本身 lower 作用 將字串每個字元都變為小寫 語法 title() 引數 無 返回值 全部變為小寫後的新字串 注意 並不會修改原字串本身 upper 作用 將字串每個字元都變為大寫 語法 upper() 引數 無 返回值 全部變為大寫後的新字串 注意 並不會修改原字串本身 ljust 作用 根據指定字元(1個), 將原字串填充夠指定長度 l 表示原字串靠左 語法 ljust(width, fillchar) 引數 引數1-width 指定結果字串的長度 引數2-fillchar 如果原字串長度 < 指定長度時 填充過去的字元 返回值 填充完畢的結果字串 注意 不會修改原字串 填充字元的長度為1 只有原字串長度 < 指定結果長度時才會填充 rjust 作用 根據指定字元(1個), 將原字串填充夠指定長度 r 表示原字串靠右 語法 rjust(width, fillchar) 引數 引數1-width 指定結果字串的長度 引數2-fillchar 如果原字串長度 < 指定長度時 填充過去的字元 返回值 填充完畢的結果字串 注意 不會修改原字串 填充字元的長度為1 只有原字串長度 < 指定結果長度時才會填充 center 作用 根據指定字元(1個), 將原字串填充夠指定長度 center 表示原字串居中 語法 center(width, fillchar) 引數 引數1-width 指定結果字串的長度 引數2-fillchar 如果原字串長度 < 指定長度時 填充過去的字元 返回值 填充完畢的結果字串 注意 不會修改原字串 填充字元的長度為1 只有原字串長度 < 指定結果長度時才會填充 lstrip 作用 移除所有原字串指定字元(預設為空白字元) l 表示從左側開始移除 語法 lstrip(chars) 引數 引數-chars 需要移除的字符集 表現形式為字串 "abc" 表示,"a"|"b"|"c" 返回值 移除完畢的結果字串 注意 不會修改原字串 rstrip 作用 移除所有原字串指定字元(預設為空白字元) r 表示從右側開始移除 語法 rstrip(chars) 引數 引數-chars 需要移除的字符集 表現形式為字串 "abc" 表示,"a"|"b"|"c" 返回值 移除完畢的結果字串 注意 不會修改原字串 split 作用 將一個大的字串分割成幾個子字串 語法 split(sep, maxsplit) 引數 引數1-sep 分隔符 引數2-maxsplit 最大的分割次數 可省略, 有多少分割多少 返回值 分割後的子字串, 組成的列表 list 列表型別 注意 並不會修改原字串本身 partition 作用 根據指定的分隔符, 返回(分隔符左側內容, 分隔符, 分隔符右側內容) 語法 partition(sep) 引數 引數-sep 分隔符 返回值 如果查詢到分隔符 (分隔符左側內容, 分隔符, 分隔符右側內容) tuple 型別 如果沒有查詢到分隔符 (原字串, "", "") tuple 型別 注意 不會修改原字串 從左側開始查詢分隔符 rpartition 作用 根據指定的分隔符, 返回(分隔符左側內容, 分隔符, 分隔符右側內容) r 表示從右側開始查詢分隔符 語法 partition(sep) 引數 引數-sep 分隔符 返回值 如果查詢到分隔符 (分隔符左側內容, 分隔符, 分隔符右側內容) tuple 型別 如果沒有查詢到分隔符 (原字串, "", "") tuple 型別 注意 不會修改原字串 從右側開始查詢分隔符 splitlines 作用 按照換行符(\r, \n), 將字串拆成多個元素, 儲存到列表中 語法 splitlines(keepends) 引數 引數-keepends 是否保留換行符 bool 型別 返回值 被換行符分割的多個字串, 作為元素組成的列表 list 型別 注意 不會修改原字串 join 作用 根據指定字串, 將給定的可迭代物件, 進行拼接, 得到拼接後的字串 語法 join(iterable) 引數 iterable 可迭代的物件 字串 元組 列表 ... 返回值 拼接好的新字串 isalpha 作用 字串中是否所有的字元都是字母 不包含該數字,特殊符號,標點符號等等 至少有一個字元 語法 isalpha() 引數 無 返回值 是否全是字母 bool 型別 isdigit 作用 字串中是否所有的字元都是數字 不包含該字母,特殊符號,標點符號等等 至少有一個字元 語法 isdigit() 引數 無 返回值 是否全是數字 bool 型別 isalnum 作用 字串中是否所有的字元都是數字或者字母 不包含該特殊符號,標點符號等等 至少有一個字元 語法 isalnum() 引數 無 返回值 是否全是數字或者字母 bool 型別 isspace 作用 字串中是否所有的字元都是空白符 包括空格,縮排,換行等不可見轉義符 至少有一個字元 語法 isspace() 引數 無 返回值 是否全是空白符 bool 型別 startswith 作用 判定一個字串是否以某個字首開頭 語法 startswith(prefix, start=0, end=len(str)) 引數 引數1-prefix 需要判定的字首字串 引數2-start 判定起始位置 引數3-end 判定結束位置 返回值 是否以指定字首開頭 bool 型別 endswith 作用 判定一個字串是否以某個字尾結尾 語法 endswith(suffix, start=0, end=len(str)) 引數 引數1-suffix 需要判定的字尾字串 引數2-start 判定起始位置 引數3-end 判定結束位置 返回值 是否以指定字尾結尾 bool 型別 補充 in 判定一個字串, 是否被另外一個字串包含 not in 判定一個字串, 是否不被另外一個字串包含 查詢計算 轉換 填充壓縮 分割拼接 判定