python函数整理
1 基本運(yùn)算符
| / | 除法,運(yùn)算結(jié)果為浮點(diǎn)數(shù) |
| // | 除法,運(yùn)算結(jié)果向下取整 也就是說,如果結(jié)果是負(fù)數(shù)的話,會找比它小的、最大的那個(gè)負(fù)數(shù) |
| + | 布爾值的加減運(yùn)算中,True被看作1,False被看作0 |
| % | 求模運(yùn)算 x%y=x-(x//y)*y |
| ** | 乘方運(yùn)算符 a**b相當(dāng)于pow(a,b) |
2 進(jìn)制、類型轉(zhuǎn)換
| 0x 0b | 十六進(jìn)制、二進(jìn)制互相轉(zhuǎn)換 |
| bin | 十進(jìn)制轉(zhuǎn)為二進(jìn)制(轉(zhuǎn)換之后的類型為string) |
| bytes | 字符串轉(zhuǎn)字節(jié) |
| chr | 十進(jìn)制轉(zhuǎn)化為ASCII碼 |
| float | 轉(zhuǎn)化為浮點(diǎn)類型 |
| hex | 十進(jìn)制轉(zhuǎn)換為十六進(jìn)制 |
| int(x,base) | 將一個(gè)字符串或者數(shù)字轉(zhuǎn)換成整形 |
| oct | 十進(jìn)制轉(zhuǎn)為八進(jìn)制(轉(zhuǎn)換之后的類型為string) |
| ord | ASCII碼轉(zhuǎn)為十進(jìn)制 |
3 比較、is和==
==比較兩個(gè)對象的 值是否相等
is比較他們倆是否是一個(gè)對象(在內(nèi)存中的地址是否一樣)
4 數(shù)學(xué)函數(shù)
| abs | 絕對值/復(fù)數(shù)的模 |
| divmod(a,b) | 取商&取余數(shù) 返回(a//b,a-(a//b)*b) |
| pow(a,b) | a的b次冪 |
| round(a,b) | 舍五入a,保留b位小數(shù) |
5 復(fù)數(shù)運(yùn)算(cmath包)
| 創(chuàng)建復(fù)數(shù) | |
| 復(fù)數(shù)運(yùn)算 |
6 文件操作
6.1 文件讀寫模式
| 'r' | 只讀。如果文件不存在,會產(chǎn)生異常(報(bào)錯(cuò)) |
| 'r+' | 在'r'的基礎(chǔ)上,同時(shí)可寫。不建議使用 |
| 'w' | 覆蓋寫。如果文件不存在,創(chuàng)建文件;如果文件存在,覆蓋文件(清空文件,從文件開頭寫) |
| 'w+' | 在'w'基礎(chǔ)上,同時(shí)可讀 |
| 'a' | 追加寫。如果文件不存在,創(chuàng)建文件;如果文件存在,在文件末尾追加內(nèi)容 |
| 'a+' | 在'a'的基礎(chǔ)上,同時(shí)可讀 |
| 'x' | 與'w'相比,如果文件不存在,則產(chǎn)生異常(報(bào)錯(cuò)) |
| 'x+' | 在'x'基礎(chǔ)上,同時(shí)可讀 |
6.1.1 文件格式
| 't' | 文本文件,默認(rèn)情況 |
| 'b' | 二進(jìn)制文件,例如圖片、音樂、視頻等 |
6.2 文件基本操作
| read | 讀取文件,后面帶一個(gè)可選參數(shù),表示讀取多少個(gè)字符 | |
| write | 寫文件 用write()把字符串寫入文件。注意和print()不同,不會自動換行,要手工標(biāo)記'\n' 務(wù)必用close()關(guān)閉文件 | |
| 寫 csv ? | ||
| writelines | 1、用writelines(列表)把列表寫入文件 2、注意,writelines不會自動加入換行。如需換行,要在列表的各元素末尾加'\n' | |
| readline | 讀一行 讀回的一行會自帶換行符'\n' | |
| readlines | 讀取文件 讀回的每一行會自帶換行符'\n' 返回一個(gè)列表,每一個(gè)元素代表文件的一行 | |
6.3 文件指針基本操作
| tell | 返回文件指針的當(dāng)前位置 |
| seek | 改變文件操作指針的位置 fileObject.seek(offset[, whence])
|
6.3 復(fù)雜操作
| python 文件處理1:將某一目錄下的文件合并_劉文巾的博客-CSDN博客 |
| python文件操作2:在指定目錄下查找指定后綴名的文件_劉文巾的博客-CSDN博客 |
7 類和類的函數(shù)
7.1 類的定義
7.2 類的函數(shù)
| isinstance(object,class) | 判斷一個(gè)對象是不是一個(gè)類的實(shí)例(一個(gè)類也是它的父類的instance) |
| issubclass(class1, class2) | 判斷一個(gè)類是不是另一個(gè)類的子類(object類是所有類的父類) |
| hasattr | (has attribute)對象是否有這個(gè)屬性值 |
8 字符串
8.1 長字符串
表示很長的字符串 可以跨越多行的字符串——用三引號(單引號雙引號都可以)
這樣的字符串內(nèi)部單雙引號不用轉(zhuǎn)義(可同時(shí)解決字符串換行、字符串內(nèi)單雙引號的問題,同時(shí)也可以換行)
8.2 原始字符串
常規(guī)的字符串中,反斜杠\表示對字符串進(jìn)行轉(zhuǎn)義的意思
\n 表示的是換行符,但有的時(shí)候我們要在字符串中包含\n(比如計(jì)算機(jī)的路徑【C:\nowhere\tere】的時(shí)候),我們有兩種解決方法
1,雙反斜杠,第一個(gè)反斜線是轉(zhuǎn)義字符
2,字符串前面加r,?r' '表示' '內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義
8.3 字符串換行
一行代碼太長的時(shí)候,我們可以在任意位置用反斜杠結(jié)尾,換下一行繼續(xù)寫?。程序執(zhí)行時(shí),仍視為一行
8.4 字符串格式
8.4.1 format 函數(shù)
| 基本使用(不帶任何參數(shù)) | |
| 括號里面帶數(shù)字 | ?括號里面也可以不按順序 |
| 括號里面命名 | |
| 通過list,命名 |
8.4.2 指定格式
| b | 將整數(shù)表示成二進(jìn)制數(shù) |
| c | 將整數(shù)表示為Unicode碼 |
| e | 使用科學(xué)計(jì)數(shù)法(用e表示指數(shù)) 冒號后面,e前面的.n表示精確到幾位小數(shù) |
| E | 使用科學(xué)計(jì)數(shù)法(用E表示指數(shù)) 默認(rèn)精確到六位小數(shù) |
| f | 將小數(shù)表示為定點(diǎn)數(shù)(默認(rèn)的話是小數(shù)點(diǎn)后六位小數(shù)) :.0f——不帶小數(shù)位 |
| o | 將整數(shù)表示為八進(jìn)制數(shù) |
| s | 字符串 |
| x | 將整數(shù)表示為十六進(jìn)制,同時(shí)使用小寫字母 |
| X | 將整數(shù)表示為十六進(jìn)制,同時(shí)使用大寫字母 |
| % | 表示為百分比值 |
8.4.3 填充與對齊
| 指定字符串寬度 | |
| 用零而不是空格填充 | < ^ >分別表示向左、居中、向右對齊 后面跟的第一個(gè)0表示用0填充 之后表示填充到長度為10位 .2f就和前面一樣了,表示精確到兩位小數(shù) |
| 同時(shí)設(shè)置類型和寬度 | |
| 使用逗號來表示千位分隔符 | |
| 左/右/居中對齊(用< > ^表示) |
8.5 字符串方法
| capitalize | 字符串首字母大寫,其他字母小寫(原字符串不會受影響) |
| center(num,char) | 在原先字符串的基礎(chǔ)上,在其兩邊填充字符達(dá)到center第一個(gè)參數(shù)這么多位數(shù)(默認(rèn)為空格),使得字符串居中 |
| count | 計(jì)算里面的某一個(gè)子串的個(gè)數(shù) |
| find | 在字符串中查找子串。 如果找到的話,返回字串出現(xiàn)的第一個(gè)字符 如果沒有找到的話,返回-1 |
| isalpha() | 如果字符串至少有一個(gè)字符并且所有字符都是字母則返回 True,否則返回 False。 |
| isdigit | 字符串中是否全是數(shù)字字符 |
| join | 合并序列元素(不改變原先字符串) |
| len | 字符串長度 |
| lower | 返回字符串的小寫版本(原字符串不會受影響) |
| replace | 將指定子串替換成另一個(gè)字符串,返回替代后的結(jié)果 |
| split | 將字符串拆分(默認(rèn)是以空格拆分) |
| startswith | 判斷是否以一個(gè)字符/一串字符開始 |
| endswith | 判斷是否以某一個(gè)字符/一串字符結(jié)束 |
| strip | 將開頭和結(jié)尾的空白刪除(lstrip&rstrip,去掉左/右空格) 也可以指定要刪除哪些字符 |
| swapcase | 大小寫反轉(zhuǎn)(原字符串不會受影響) |
| title | 字符串每個(gè)詞的詞首大寫(原字符串不會受影響) |
| upper | 返回字符串的大寫版本(原字符串不會受影響) |
8.6 f格式字符串
????????在使用 f 模式的情況下,我們要在字符串開頭加上一個(gè)?f。然后用?{}?圈出你的變量名,直接在?{}?引用變量
pi=3.1415926 print(f"pi's value is {pi}") #pi's value is 3.1415926? ? ? ? 和前面的format一樣,也可以指定輸出的格式?
pi=3.1415926 print(f"pi's value is {pi}") print(f"pi's value is {pi:.3%}") print(f"pi's value is {pi:.0f}")''' pi's value is 3.1415926 pi's value is 314.159% pi's value is 3 '''你也可以在大括號中進(jìn)行運(yùn)算操作
pi=3.1415926 print(f"pi's value is {pi+1}")#pi's value is 4.14159269 列表生成式
10 列表
列表里面的元素可以不是一個(gè)類型
10.1 列表索引
負(fù)數(shù)索引表示從右向左
10.2 列表切片
范圍是左閉右開
第二個(gè)冒號之后表示步長
步長為負(fù)數(shù):從右向左
給切片賦值:可以將切片替換成長度與其不同的序列
給切片賦值還可以在不替換原有元素的情況下插入新元素
10.3?序列相加
可以用加法來拼接序列,但一般不同類型的序列不能拼接
10.4 序列數(shù)乘
重復(fù)這個(gè)序列n次
10.5?序列內(nèi)置函數(shù)
| append | 將一個(gè)對象添加到列表的末尾 |
| count | 計(jì)算指定的元素在列表中出現(xiàn)了幾次 |
| copy以及列表的復(fù)制 | 等號相當(dāng)于是一個(gè)引用,相當(dāng)于給列表設(shè)置了一個(gè)別名。新老名字指向同一個(gè)列表 copy相當(dāng)于新建一個(gè)對象 另一種復(fù)制的方法是lst[:],這個(gè)也是生成新的列表 |
| clear | 清空列表? |
| del | 刪除元素 |
| extend | 將可迭代的元素添加到列表中(有別于append) |
| in | 運(yùn)算符in返回一個(gè)布爾變量,判斷特定的值在不在序列中 |
| index | 返回指定值第一次出現(xiàn)時(shí)候的索引 ?如果列表中沒有這個(gè)值,報(bào)錯(cuò) 我們也可以人為定義index的范圍 |
| insert(x,y) | 在指定位置插入對象(在第x個(gè)位置插入元素y) |
| len | 序列長度 |
| max min | 最大最小值 |
| pop(i) | 從列表中刪除下標(biāo)為i的元素(如果沒有參數(shù)的話,默認(rèn)為最后一個(gè)元素),并返回這個(gè)元素 |
| remove | 刪除第一個(gè)為指定值的元素 (如果沒有這個(gè)元素,報(bào)錯(cuò)) 不按照序號,按照內(nèi)容查 |
| reverse | 列表反轉(zhuǎn) |
| sort | 直接對列表進(jìn)行排序,不返回任何值 (區(qū)別于sorted,sorted不改變原有列表;sort直接修改列表) 倒序排序:參數(shù)里面加上reverse=True 可以支持高級排序。key可以是我們定義的函數(shù),lambda函數(shù)等 上例中,北京和南京的字符串長度是一樣的。此時(shí)兩者再比較字典序 如果列表的每個(gè)元素也是列表/元組,那么默認(rèn)參數(shù)按照第0個(gè)元素進(jìn)行排序 如果不想按照第0個(gè)元素排序,可以手動設(shè)置key 值 ? |
| sorted | 從小到大排序 不改變原有列表 可以接受一個(gè)key函數(shù)(參數(shù)為來實(shí)現(xiàn)自定義的排序 reverse——逆向排序(從大到小) 字符串排序默認(rèn)使用ascii碼 如果列表的每個(gè)元素也是列表/元組,那么默認(rèn)參數(shù)按照第0個(gè)元素進(jìn)行排序 |
| sum | 求和 |
11 元組
元組值不可修改
11.1 元組的表達(dá)方式
11.1.1?不帶括號的表達(dá)方式
注意單個(gè)值的元組,即使只有一個(gè)值,也要加逗號
11.1.2 帶括號的表達(dá)方式
注意單個(gè)值的元組,即使只有一個(gè)值,也要加逗號
11.2 內(nèi)置函數(shù)
大部分的內(nèi)置函數(shù)和列表的一樣,見10.5就可以了
11.3 序列和元組的相互轉(zhuǎn)化
11.4 tuple的比較
tuple是一個(gè)一個(gè)比較的,第一個(gè)一樣了再比較第二個(gè)。
第一個(gè)如果已經(jīng)可以區(qū)分大小了,就不必看第二個(gè)了。
我們已知有這樣的大小關(guān)系:(‘10’<‘9’是因?yàn)椤?’的字典序小于‘9‘)
那么接下來的這幾個(gè)元組可以這么比較:
第一行和第二行,因?yàn)?0<9,0<9,所以已經(jīng)能比較了,就不用看第二個(gè)了。
第三行因?yàn)榈谝粋€(gè)對應(yīng)的元素都一樣,所以需要比較第二個(gè)元素.
12 集合
無序的集合,沒有重復(fù)的元素
12.1 集合的聲明
12.2 集合的內(nèi)置函數(shù)
| add | 添加元素 如果要add的值已經(jīng)在集合里面,那這一步相當(dāng)于啥也沒做 |
| difference | 兩個(gè)set里面不同的元素 a.difference(b)的意思是在a卻不在b中的元素,也就是a和b的集合差 |
| intersection | ?兩個(gè)set的交集 |
| union | 兩個(gè)set的并集 |
13 字典
13.1 字典的創(chuàng)建
13.1.1 從列表中創(chuàng)建字典
13.2 字典內(nèi)置函數(shù)
| clear | 刪除所有的字典項(xiàng) |
| del | 刪除鍵值為k的項(xiàng) |
| dict[k] | 返回和鍵值k相對應(yīng)的值 如果字典中沒有k這個(gè)鍵值,dict[key]=x,會新建一個(gè)新項(xiàng),否則就是修改值 |
| get | 訪問字典項(xiàng),不同于直接dict[key],get訪問的時(shí)候,如果沒有這個(gè)鍵值,會返回none(或者自己指定的value),而不是報(bào)錯(cuò) |
| keys | 返回鍵值 |
| len | 返回鍵值對數(shù) |
| in | 字典中是否有包含鍵值為k的項(xiàng) |
| items | 返回包含鍵值對(元組)的列表 |
| pop | 獲取與指定鍵值相關(guān)聯(lián)的值,并將該鍵值對從字典中刪除 如果要pop的內(nèi)容不在字典中,那么會報(bào)錯(cuò) |
| popitem | 隨機(jī)彈出一個(gè)字典項(xiàng)(這個(gè)在需要逐個(gè)彈出字典項(xiàng),但是又不要求彈出順序的時(shí)候很有用) |
| setdefault | 和get有點(diǎn)像,不一樣的是,在字典中不包含指定的項(xiàng)的時(shí)候,添加指定的鍵值對(如果不指定鍵值的話,默認(rèn)為None) |
| update | 用另一個(gè)字典的項(xiàng)來更新一個(gè)字典 沒有的——添加進(jìn)來,有的——修改掉 |
| values | 返回值的list,可能會有重復(fù)值 |
13.3 字典排序
| 利用key排序 | |
| 利用value排序 | |
| 利用value排序(反序) | |
| 對dict_items進(jìn)行排序 |
13.4 字典的復(fù)制
和列表一樣,等號賦值相當(dāng)于去取了一個(gè)別名,本質(zhì)上這兩個(gè)是一個(gè)字典
要達(dá)到復(fù)制的效果,需要建立一個(gè)空字典,再用update合并字典
13.5 字典數(shù)據(jù)篩選
14 其他函數(shù)
| all | 接受一個(gè)可迭代對象,如果可迭代對象的所有元素都為真,那么返回True,否則,返回False |
| any | 接受一個(gè)可迭代對象,如果可迭代對象里至少有一個(gè)元素為真,那么返回True,否則返回False |
| callable | 類型是否可調(diào)用 |
| eval | 執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式的值 |
| enumerate | 把一個(gè)可遍歷對象(列表、元組、字符串)變成一個(gè)下標(biāo)-元素對 可以有一個(gè)可選變量start,表示下標(biāo)起始 的位置 enumerate +字典:對鍵值進(jìn)行枚舉 |
| filter ( func, iterable) | 過濾器,丟棄 func返回值為False的部分 |
| | 接受多個(gè)東西,用逗號隔開(遇到逗號輸出一個(gè)空格) |
| help(func) | 查看函數(shù)的幫助信息 Sep=‘ ’這樣的話逗號不會被輸出成空格 |
| id | 返回內(nèi)存地址 |
| input | 讓用戶輸入一個(gè)字符串 |
| map(function,iterable) | 根據(jù)提供的函數(shù)對指定序列做映射,返回一個(gè)新列表 上面的例子相當(dāng)于l列表中每個(gè)元素乘方 |
| reduce(fucntion,iterable) | 對參數(shù)序列中的元素進(jìn)行累積 將一個(gè)數(shù)據(jù)集合中的所有數(shù)據(jù)進(jìn)行如下操作:用傳給reduce中的函數(shù)function(這個(gè)函數(shù)有兩個(gè)參數(shù)),先對集合中的第一和第二個(gè)元素進(jìn)行操作,將得到的結(jié)果再與第三個(gè)數(shù)據(jù)用function函數(shù)進(jìn)行運(yùn)算,最后得到一個(gè)結(jié)果 上面的例子相當(dāng)于(((1+2)+3)+4)+5 |
| type | 查看對象類型 |
| zip | zip與zip(*)_劉文巾的博客-CSDN博客 |
總結(jié)
以上是生活随笔為你收集整理的python函数整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 797. 所有可能的路径
- 下一篇: python笔记:正则表达式