python3中有六個標準的數據類型python
Python3的六個標準數據類型中:git
Python3支持int、float、bool、complex(複數)api
在Python3裏,只有一種整數類型int,表示爲長整型,沒有python2中的Long。數組
內置的type()函數能夠用來查詢變量所指的對象類型 數據結構
>>> a, b, c, d = 20, 5.5, True, 4+3j >>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'> --------------------------------------------------------------- 注意: 在 Python2 中是沒有布爾型的,它用數字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定義成關鍵字了,但它們的值仍是 1 和 0,它們能夠和數字相加。 Python能夠同時爲多個變量賦值,如a,b = 1,2 一個變量能夠經過賦值指向不通類型的對象 數值的除法(/)老是返回一個浮點數,要獲取證書使用//操做符。 在混合計算時,Python會把整型轉換成浮點數 Python還支持複數,複數能夠用a+bj,或者complex(a,b)表示,a和b都是浮點數
Python中的字符串是以單引號(’)或者雙引號(「)引發來的app
1,截取字符串格式爲:變量[頭下標:尾下標]ide
str = 'Yehewudi' print (str) # 輸出字符串 print (str[0:-1]) # 輸出第一個到倒數第二個的全部字符 print (str[0]) # 輸出字符串第一個字符 print (str[2:5]) # 輸出從第三個開始到第五個的字符 print (str[2:]) # 輸出從第三個開始的後的全部字符 print (str * 2) # 輸出字符串兩次 print (str + "TEST") # 鏈接字符串 --------------------------------------------------------------- Python使用反斜槓(\)轉義特殊字符,若是你不想讓反斜槓發生轉義,能夠在字符串前面添加一個r,表示原始字符 例子: --------------------------------------------------------------- >>> print('Ye\he') Ye he >>> print(r'Ye\he') Ye\he >>> --------------------------------------------------------------- 另外,反斜槓(\)能夠做爲續行符,表示下一行是上一行的延續。也可使用"""..."""或者'''...'''跨越多行
count 通即字符串裏某個字符出現的次數,支持切片 語法:str.count(sub, start= 0, end=len(string)) 例子: --------------------------------------------------------------- a="cainiao chuanqi" print(a.count("a" 2 -1)) 4 --------------------------------------------------------------- encode 指定編碼格式字符串 語法:str.encode(encodeing='UTF-8',errors = 'strict') encoding 要使用的編碼 errors 設置不通錯誤的處理方案 find 判斷字符串中是否包含自字符串,若是在返回索引值,若是再也不返回-1支持切片 例子: --------------------------------------------------------------- a=" cainioa chuanqi" print(a.find("chuan")) 7 --------------------------------------------------------------- format 格式化輸出 例子: --------------------------------------------------------------- print("姓名:{name}, 年齡:{age}".format(name = "cai", age = 22)) 姓名 蔡,年齡:22 --------------------------------------------------------------- index 查找字符串是否包含子字符串,若是存在返回索引,不存在報錯 --------------------------------------------------------------- a="caichuan" print(a.index("a")) 1 --------------------------------------------------------------- isdigit 判斷字符串是否只由數字組成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="11" print(a.isdigit()) True --------------------------------------------------------------- True: Unicode數字,byte數字(單字節),全角數字(雙字節),羅馬數字 False: 漢字數字 Error: 無 isidentifier 判斷字符串是否由字母開頭,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.isidentifier()) True --------------------------------------------------------------- islower 判斷字符串是否由小寫字母組成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.islower()) True --------------------------------------------------------------- isupper 判斷字符串中全部的字母是否都爲大寫,是返回True,不然返回Flase 例子: --------------------------------------------------------------- a="XIAOCHEN" print(a.isupper()) True --------------------------------------------------------------- isspace 判斷字符串是否只由空格組成,是返回True,不然返回Flase 例子: --------------------------------------------------------------- a=" \t " print(a.isspace()) True --------------------------------------------------------------- isalpha 判斷字符串是否只由字母組成,是返回True,不然返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.isalpha()) True --------------------------------------------------------------- isalnum 判斷字符串是否由字母和數字組成,是返回True,不然返回Flase 例子: --------------------------------------------------------------- a="xiaochen1234" print(a.isalnum()) True --------------------------------------------------------------- join 講序列中的元素以指定的字符鏈接生成一個新的字符串 例子: --------------------------------------------------------------- a="-" print(a.join("xiao")) x-i-a-0 --------------------------------------------------------------- lower 將字符串中全部大寫字符轉爲小寫 例子: --------------------------------------------------------------- a="AAA" print(a.lower()) aaa --------------------------------------------------------------- replace 將字符串中的字舊符替換成新字符,替換不超過max次 例子: --------------------------------------------------------------- a="My name is xiaochen" print(a.replace("xiaochen", "chuanqi")) My name is chuanqi --------------------------------------------------------------- split 經過指定分隔符對字符串進行分隔,已分割後的字符串爲元素組成列表 語法:str.split(str="", num=string.count(str)). str 分隔符,默認爲空格 num 分隔次數 例子: --------------------------------------------------------------- a="cai chuan qi" print(a.split()) ['cai', 'chuan', 'qi'] --------------------------------------------------------------- upper 將字符串中的小寫字母轉爲大寫字母 例子: --------------------------------------------------------------- a="aaa" print(a.upper()) AAA --------------------------------------------------------------- 不經常使用的用法: capitalize 將字符串的第一個字母變成大寫,其餘字母變小寫 例子: --------------------------------------------------------------- a="cai CHUAN qi" print(a.capitalize()) Cai chuan qi --------------------------------------------------------------- casefold 與lower類似 二者的區別是:lower() 方法只對ASCII編碼,也就是‘A-Z’有效,對於其餘語言(非漢語或英文)中把大寫轉換爲小寫的狀況只能用 casefold() 方法 center 返回一個原字符串居中,並使用空格填充至長度 width 的新字符串。默認填充字符爲空格 語法:str.center(width[, fillchar]) width 字符串的總寬度 fillchar 填充字符 例子: --------------------------------------------------------------- a="xiaochen" a.center(22, '*') ********yehe******** --------------------------------------------------------------- expandtabs 將字符串中的tab符號('\t')轉爲空格,tab爲8個空格 endswith 判斷字符串自否以指定字符結尾,是返回True,不然返回False,支持切片 例子: --------------------------------------------------------------- a="xiaochen" a.endswith("chen") True --------------------------------------------------------------- format_map(不清楚) isnumeric 判斷字符串是否只由數字組成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="123" print(a.isnumeric()) True --------------------------------------------------------------- True: Unicode數字,全角數字(雙字節),羅馬數字,漢字數字 False: 無 Error: byte數字(單字節) isdecimal 判斷字符串是否只包含十進制字符返回True,不然返回False 例子: --------------------------------------------------------------- a="123" print(a.isdecimal()) True --------------------------------------------------------------- True: Unicode數字,,全角數字(雙字節) False: 羅馬數字,漢字數字 Error: byte數字(單字節) isprintable 判斷字符串中全部字符是否都屬於可打印字符 例子: --------------------------------------------------------------- a="123\t" print(a.isprintable()) False --------------------------------------------------------------- istitle 判斷字符串中全部的單詞首字母爲大寫,其餘字母爲小寫,是返回True,不然返回Flase 例子: --------------------------------------------------------------- a="This Is A xiaochen!" print(a.istitle()) True --------------------------------------------------------------- ljust 返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串 lstrip 截掉字符串左邊的空格或指定字符 maketrans ???? partition 根據指定的分隔符講字符串進行分隔 例子: --------------------------------------------------------------- a="chuanxqi!" print(a.partition("x")) ("chuan", "x", "qi!") --------------------------------------------------------------- rsplit 經過指定分隔符對字符串進行切片,相似於 split() 方法,只不過是從字符串最後面開始分割。 rfind 返回字符串最後一次出現的位置(從右向左查詢),若是沒有匹配項則返回-1 rindex 返回子字符串 str 在字符串中最後出現的位置,若是沒有匹配的字符串會報異常,你能夠指定可選參數 rjust 返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串。若是指定的長度小於字符串的長度則返回原字符串 rpartition 與partition相似,從後往前。 rstrip 刪除 string 字符串末尾的指定字符(默認爲空格). startswith 用於檢查字符串是不是以指定子字符串開頭,若是是則返回 True,不然返回 False,支持切片 splitlines 按照行('\r', '\r\n', \n')分隔,返回一個包含各行做爲元素的列表 swapcase 對字符串的大小寫字母進行轉換 title 返回"標題化"的字符串,就是說全部單詞都是以大寫開始,其他字母均爲小寫 translate 根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 要過濾掉的字符放到 del 參數中 zfill 返回指定長度的字符串,原字符串右對齊,前面填充0 注意: Python沒有單獨的字符類型,一個字符就是長度爲1的字符串 反斜槓能夠用來轉義,使用r可讓反斜槓不發生轉義 字符串能夠用+運算符進行字符串的拼接操做 Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始 Python中的字符串不能改變
List是Python中使用最頻繁的數據烈性。函數
列表能夠完成大多數集合類的數據結構實現。列表中元素的類型不相同,它支持數字,字符串甚至能夠包含列表(嵌套)。測試
列表是寫在方括號「[]」之間、用逗號分隔的元素列表。編碼
和字符串同樣,列表一樣能夠被索引和截取,列表被截取後返回一個包含所需元素的新列表。
列表的截取格式爲:變量[頭下標:尾下標]
list = [ 'abcd', 786 , 2.23, 'cai', 70.2 ] tinylist = [123, 'cai'] print (list) # 輸出完整列表 print (list[0]) # 輸出列表第一個元素 print (list[1:3]) # 從第二個開始輸出到第三個元素 print (list[2:]) # 輸出從第三個元素開始的全部元素 print (tinylist * 2) # 輸出兩次列表 print (list + tinylist) # 鏈接列表
append 在列表末尾添加新的元素 例子: --------------------------------------------------------------- a = ["cai", "test", 123] a.append("xiaochen") print(a) ["cai", "test", 123, "xiaochen"] --------------------------------------------------------------- count 用於統計某個元素在列表中出現的次數。 例子: --------------------------------------------------------------- a = ["cai", "test", 123, 123] print(a.count(123)) 2 --------------------------------------------------------------- clear 清空列表 extend 用於在列表末尾一次性追加另外一個序列中的多個值 例子: --------------------------------------------------------------- a = ["cai", "test", 123] b = ["xiao", chen] a.extend(b) print(a) ["cai", "test", 123, "xiao", "chen"] --------------------------------------------------------------- index 從列表中找出某個值第一個匹配項的索引位置 例子: --------------------------------------------------------------- a = ["xiaochen", "test", 123] print(a.index("test")) 1 --------------------------------------------------------------- insert 將指定對象插入列表的指定位置 例子: --------------------------------------------------------------- a = ["xiaochen", "test", 123] a.insert(1, "cai") print(a) ["xiaochen", "cai", "test", 123] --------------------------------------------------------------- pop 刪除列表中的一個元素(默認爲最後一個),而且返回值爲該元素,沒有則會報錯 例子: --------------------------------------------------------------- a = ["chuanqi", "test", 123] a.pop(1) print(a) ["chuanqi", 123] --------------------------------------------------------------- remove 刪除列表中某個元素的第一個匹配項,沒有則會報錯 例子: --------------------------------------------------------------- a = ["chuanqi", 123, "test", 123] a.remove(123) print(a) ["chuanqi", 123] --------------------------------------------------------------- sort 對列表進行排序 例子: --------------------------------------------------------------- a = [3, 2, 4, 1] a.sort() print(a) [1, 2, 3, 4] --------------------------------------------------------------- 不經常使用用法: reverse 用於反向列表中元素 例子: --------------------------------------------------------------- a = ["chuanqi", "test", 123] a.reverse() print(a) [123, "test", "chuanqi"] ---------------------------------------------------------------
注意:
List卸載方括號之間,元素用逗號分隔
和字符串同樣,list能夠被索引和切片
List能夠用+操做符進行拼接
List中的元素是能夠改變的
元組與列表相似,不用之處在於元組不能修改。元組卸載小括號裏「()」,元素之間用逗號分隔
用法:
與列表相似,只是不能修改
只有count與index函數
注意:
字典是Python中另外一個很是游泳的內置數據類型。
列表是有序的對象集合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過索引存取。
字典是一種映射類型,字典用大括號「{}」表示,它是一個無序的鍵(key):值(value)對集合。
鍵(key)必須使用不可變類型。
在同一個字典中,鍵(key)必須是惟一的。
dict = {} dict['one'] = "1" dict[2] = "2" testdict = {'name': 'xiaochen','code':1, 'site': 'www.777.com'} print (dict['one']) # 輸出鍵爲 'one' 的值 print (dict[2]) # 輸出鍵爲 2 的值 print (testdict) # 輸出完整的字典 print (testdict.keys()) # 輸出全部鍵 print (testdict.values()) # 輸出全部值
clear 刪除字典內全部元素 例子: --------------------------------------------------------------- a = {"name": xiaochen", "age": 18} a.clear print(a) --------------------------------------------------------------- fromkeys 建立一個新字典,以序列seq中元素作字典的鍵,value爲字典全部鍵對應的初始值 例子: --------------------------------------------------------------- a = {} b = ["name", "age", "test"] print(a.fromkeys(b, 10)) {'name': 10, 'age': 10, 'test': 10} --------------------------------------------------------------- get 函數返回指定鍵的值,若是值不在字典中返回默認值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} print(a.get("name")) yehe --------------------------------------------------------------- items 以列表返回可遍歷的(鍵, 值) 元組數組(列表轉元組) 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} b = a.items() print(b) dict_items([('name', 'xiaochen'), ('age', 18)]) --------------------------------------------------------------- keys 已列表的形式返回一個字典全部的鍵 pop 刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} a.pop("name") print(a) {'age': 18} --------------------------------------------------------------- popitem 隨機返回並刪除字典中的一對鍵和值(通常刪除末尾對),若是字典爲空則報錯 setdefault 和get()方法相似, 若是鍵不存在於字典中,將會添加鍵並將值設爲默認值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} print(a.setdefault("test")) print(a) {'name': 'xiaochen', 'age': 18, 'test': None} --------------------------------------------------------------- update 把字典dict2的鍵/值對更新到dict裏 例子: --------------------------------------------------------------- a1 = {"name": "xiaochen", "age": 18} a2 = {"hobby":"men"} a1.update(a2) print(a1) {'name': 'xiaochen', 'age': 18, 'hobby': 'men'} --------------------------------------------------------------- values 已列表的形式返回字典中的全部值
注意:
集合是一個無序不重複元素的序列。
基本功能是進行成員關係測試和刪除重複元素。
可使用大括號{ }或者set()函數建立集合,可是建立一個空集合必須用set()
parame = {value01,value02,...} 或者 set(value)
a = set('abracadabra') b = set('alacazam') 1,差集 print(a - b) 2,並集 print(a | b) 3,交集 print(a & b) 4,反交集 print(a ^ b) 5,增 a.add('666') 增長一個元素 a.update('abc') 迭代增長 6,刪 a.remove 刪除一個元素 a.pop 隨機刪除一個元素 a.clear 清空集合 del a 刪除集合
字符串是 Python 中最經常使用的數據類型。咱們可使用引號('或")來建立字符串。
%[(name)][flags][width].[precision]typecode
tpl = "i am %s" % "cai" tpl = "i am %s age %d" % ("cai", 18) tpl = "i am %(name)s age %(age)d" % {"name": "cai", "age": 18} tpl = "percent %.2f" % 99.97623 tpl = "i am %(pp).2f" % {"pp": 123.425556, } tpl = "i am %.2f %%" % {"pp": 123.425556, }
(name) 可選,用於選擇指定的key flags 可選,可供選擇的值有: + 右對齊;正數前加正好,負數前加負號; - 左對齊;正數前無符號,負數前加負號; 空格 右對齊;正數前加空格,負數前加負號; 0 右對齊;正數前無符號,負數前加負號;用0填充空白處 width 可選,佔有寬度 .precision 可選,小數點後保留的位數 typecode 必選 s,獲取傳入對象的__str__方法的返回值,並將其格式化到指定位置 r,獲取傳入對象的__repr__方法的返回值,並將其格式化到指定位置 c,整數:將數字轉換成其unicode對應的值,10進制範圍爲 0 <= i <= 1114111(py27則只支持0-255);字符:將字符添加到指定位置 o,將整數轉換成 八 進製表示,並將其格式化到指定位置 x,將整數轉換成十六進制表示,並將其格式化到指定位置 d,將整數、浮點數轉換成 十 進製表示,並將其格式化到指定位置 e,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(小寫e) E,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(大寫E) f, 將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認保留小數點後6位) F,同上 g,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(若是是科學計數則是e;) G,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(若是是科學計數則是E;) %,當字符串中存在格式化標誌時,須要用 %%表示一個百分號 注:Python中百分號格式化是不存在自動將整數轉換成二進制表示的方式
[[fill]align][sign][#][0][width][,][.precision][type]
fill 【可選】空白處填充的字符 align 【可選】對齊方式(需配合width使用) <,內容左對齊 >,內容右對齊(默認) =,內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即便:符號+填充物+數字 ^,內容居中 sign 【可選】有無符號數字 +,正號加正,負號加負; -,正號不變,負號加負; 空格 ,正號空格,負號加負; # 【可選】對於二進制、八進制、十六進制,若是加上#,會顯示 0b/0o/0x,不然不顯示 , 【可選】爲數字添加分隔符,如:1,000,000 width 【可選】格式化位所佔寬度 .precision 【可選】小數位保留精度 type 【可選】格式化類型 傳入」 字符串類型 「的參數 s,格式化字符串類型數據 空白,未指定類型,則默認是None,同s 傳入「 整數類型 」的參數 b,將10進制整數自動轉換成2進製表示而後格式化 c,將10進制整數自動轉換爲其對應的unicode字符 d,十進制整數 o,將10進制整數自動轉換成8進製表示而後格式化; x,將10進制整數自動轉換成16進製表示而後格式化(小寫x) X,將10進制整數自動轉換成16進製表示而後格式化(大寫X) 傳入「 浮點型或小數類型 」的參數 e, 轉換爲科學計數法(小寫e)表示,而後格式化; E, 轉換爲科學計數法(大寫E)表示,而後格式化; f , 轉換爲浮點型(默認小數點後保留6位)表示,而後格式化; F, 轉換爲浮點型(默認小數點後保留6位)表示,而後格式化; g, 自動在e和f中切換 G, 自動在E和F中切換 %,顯示百分比(默認顯示小數點後6位)
tpl = "i am {}, age {}, {}".format("seven", 18, 'alex') tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex']) tpl = "i am {0}, age {1}, really {0}".format("seven", 18) tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18]) tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18) tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}) tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33]) tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1) tpl = "i am {:s}, age {:d}".format(*["seven", 18]) tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18) tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}) tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15) tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)