Python | Python常用函式、方法示例總結(API)

多氯環己烷發表於2021-11-15


前言

參考資料

  • 《Python程式設計:從入門到實戰》;
  • MOOC慕課北理的嵩天教授的Python課程;

結合語法基礎

本篇會實時更新,學到啥模組就更新啥模組的方法。重點放在常用函式、方法的總結,類似Java裡API。主要起“字典”的作用,即忘了有啥方法才來查,因此做了些減法。結合Python語法基礎來看可能效果會好一些;


1. 運算相關

x,y,z為某個數字;list為列表

  • abs(x):求x的絕對值;
  • divmod(x, y):商餘,同時輸出商和餘數,divmod(10, 3) ---> (3, 1);
  • pow(x, y):冪運算,x**y;
  • pow(x, y, z):冪餘,(x**y)%z;
  • round(x):四捨五入,不保留小數;
  • round(x, d):四捨五入,保留d位小數;
  • min(list):獲取數字列表中的最小值;
  • max(list):獲取數字列表中的最大值;
  • sum(list):獲取數字列表中的總和;
  • int(x):將x取整,攝取小數部分;
  • float(x):將x變成浮點數,增加小數部分;
  • complex(x):將x變成複數,增加虛數部分;

2. Sring與數字

string為某個字串;num為某個數字;firstNum為第一個數字;lastNum為最後一個數字;step為步長;u為unicode編碼字元;old為老的子串;new為新的子串;sep為分隔的子串規則;fillchar為填充的字元;chars為字元;

字串的操作方法

  • string.title():讓每個單詞的首字母都改成大寫;
  • string.lower():字串全字元小寫;
  • string.upper():字串全字元大寫;
  • string.replace(old, new):所有old的子串被new子串替換;
  • string.center(num):根據寬度num將字串居中;
  • string.center(num, fillchar):根據寬度num將字串居中,其餘字元使用fillchar填充;
  • string.rstrip():刪去字串末尾的空白;
  • string.lstrip():刪去字串開頭的空白;
  • string.strip():同時刪去字串兩端空白;
  • string.strip(chars):刪去字串兩邊出現的字元chars;
  • new.join(string):在string變數中除最後元素外每個元素後增加一個new子串;

字串的獲取功能

  • string.count('xxx'):獲取xxx在string中出現的次數;
  • string.split():以空格為分隔符將字串拆分成多個部分,並儲存在一個列表裡;
  • string.split(sep):返回列表,根據sep將字串分隔;
  • len(string):獲取字串的長度;
  • chr(u):返回u編碼的字元x;
  • ord(x):獲取x的Unicode編碼;

其他型別轉字串的方法

  • str(num):將數字num轉換成字串;
  • hex(num):將數字num轉成十六進位制字串;
  • oct(num):將數字num轉成八進位制字串;

字串切片(同列表切片)

  • string[firstNum: lastNum: step]:根據步長對字串切片;
  • string[::-1]:倒轉字串;

字串的格式化

  • "{} {}".format("hello", "world"):不設定指定位置,按預設順序輸出 hello world;
  • "{1} {0} {1}".format("hello", "world"):設定指定位置,輸出 world hello world;
  • format函式傳入物件:
    class AssignValue(object):
        def __init__(self, value):
            self.value = value
    my_value = AssignValue(6)
    print('value 為: {0.value}'.format(my_value))  # "0" 是可選的
    

數字的格式化

  • {字串模板}.format(用逗號分隔的字串引數):使用字串模板格式化字串引數;
  • format格式化函式的字串模板,如下圖所示:
    format格式化函式的字串模板
  • 數字格式化示例:
    數字格式化示例

字串反轉函式

def rvs(s):
	if s == "" :
		return s
	else :
		return rvs(s[1:])+s[0]


3. 列表相關

list為某個列表;object為列表中的某個元素;index為列表的索引;firstNum為第一個數字;lastNum為最後一個數字;num為某個數字;

建立列表的示例

  • bicycles = [ 'trek', 'cannondale', 'redline']
  • list= []:建立空列表;

數字列表的建立與操作功能

  • range(firstNum, lastNum):生成一系列數字,包含firstNum,不包含lastNum。通常在遍歷時使用,如for num in range(1, 5):
  • range(firstNum, lastNum, step):指定步長生成一系列數字,包含firstNum,不包含lastNum,步長為step;
  • list(range(firstNum, lastNum)):生成數字列表,包含firstNum,不包含lastNum;
  • list = [num**2 for num in range(1s, 11)]:使用列表解析生成數字列表;
  • min(list):獲取數字列表中的最小值;
  • max(list):獲取數字列表中的最大值;
  • sum(list):獲取數字列表中的總和;

列表的增刪功能

  • list.append(object):將object元素新增到列表末尾;
  • list.insert(index, object):將object元素新增到列表任意位置,需要指定索引index;
  • del list[index]:刪除list列表裡指定索引index的元素;
  • list.pop():彈出列表末尾元素;
  • list.pop(index):彈出列表中指定索引index的元素;
  • list.remove(object):將列表中元素object刪除,只刪除第一個指定的值;
  • list.clear():刪除列表所有元素;

列表的操作功能

  • list.sort():根據首字母對列表進行排序,永久性修改;
  • list.sort(reverse = True):按字母順序相反的順序排列列表元素,永久性修改;
  • sorted(list):根據首字母對列表進行排序,臨時性修改;
  • sorted(list, reverse=True):按字母順序相反的順序排列列表元素,臨時性修改;
  • list.reverse():反轉列表排列順序;
  • tuple(list):將列表型別轉變為元祖型別,實現資料保護;
  • list1[i: j: k] = list2:用列表list2替換list1切片後說對應元素子列表;
  • list *= n:將列表list重複n次,並更新;

列表的獲取功能

  • len(list):獲取list列表的長度;
  • list[firstNum: lastNum]:切片,獲取索引為firstNum到lastNum-1的元素組成新列表(可用於遍歷部分列表、複製列表);
  • list[: lastNum]:切片,獲取從頭開始到lastNum-1的元素組成新列表;
  • list[firstNum:]:切片,獲取索引為firstNum到列表末尾的元素組成新列表(當first為負數時,為倒數幾個);
  • list.copy():生成新列表,複製list中所有元素;

4. 集合相關

S、T為集合;x為集合中的元素

集合的操作符

  • S | T:並集,所有元素;
  • S - T:差集;
  • S & T:交集,同時包含;
  • S ^ T:補集,非相同元素;
  • S <= T 或 S < T:判斷S和T的子集關係;
  • S >= T 或 S > T:判斷S和T的包含關係;
  • S |= T:並集;
  • S -= T:差集;
  • S &= T:交集;
  • S ^= T:補集;

集合的處理方法

  • S.add(x):若S中無x,則將x加入S;
  • S.discard(x):移除元素x,若x不在S中,不報錯;
  • S.remove(x):移除元素x,若x不在S中,產生KeyError異常;
  • S.clear():移除所有元素;
  • S.pop():隨機返回一個元素,並更新S,若S為空則產生KeyError異常;
  • S.copy():返回集合S的一個副本;
  • len(S):返回集合S的元素個數;
  • x in S:判斷x是否在S中;
  • x not in S:判斷x是否不在S中;
  • set(x):將其他型別變數轉變為集合型別;

5. 序列化型別

序列是一個基類型別,由字串、元祖、列表構成。x為元素;S、T為序列;n為數字;i、j為索引;k為步長;

序列化通用操作符

  • x in S:判斷x是否在S中;
  • x not in S:判斷x是否不在S中;
  • S + T:連線兩個序列;
  • S*n:將序列S複製n次;
  • S[i]:返回第i個元素;
  • S[i: j]:切片,含i不含j;
  • S[i: j: k]:切片,以k為步長,含i不含j;
  • len(S):返回序列S的長度,即元素個數;
  • min(S):返回序列中的最小值;
  • max(S):返回序列中的最大值;
  • S.index(x):返回序列S第一次出現x的位置;
  • S.index(x, i, j):返回序列S從i到j第一次出現x的位置;
  • S.count(x):返回序列S中出現x的總次數;

6. 字典相關

map為某個字典;key為鍵;value為值;

建立字典的示例

  • alien0 = {'color': 'green', 'points': 5}
  • map = {}:建立空字典;
  • 由類似物件組成字典,如下:
    favorite_languages = {
        'jen': 'python',
        'sarah': 'ruby',
        'edward': 'ruby',
        'phil': 'python',
        }
    

字典的獲取功能

  • map[key]:根據key獲取value,如果key為字串需要用引號標識;
  • map.items():返回字典中所有鍵值對的資訊。可用於用於map字典的遍歷,如:for key, value in map.items():
  • map.keys():返回字典中所有鍵的資訊。可用於遍歷map字典的鍵,如:for object in map.keys():
  • map.values():返回字典中所有值的資訊。可用於遍歷map字典的值,如:for object in map.values():
  • set(map.values()):遍歷map字典的值,剔除重複項;
  • map.get(key, <default>):若鍵存在,則返回相應值,不存在則返回<default>值;
  • map.pop(key, <default>):若鍵存在,則返回相應值,不存在則返回<default>值;
  • map.popitem():隨機從字典map中取出一個鍵值對,以元祖形式返回;
  • len(map):獲取map中的元素個數;

字典的操作功能

  • map[key] = value:給map字典新增一對鍵值對 / 或修改某鍵的值;
  • del map[key]:刪除map字典中鍵]為key的鍵值對;
  • map.clear():刪除所有的鍵值對;

字典的判斷功能

  • key in map:判斷鍵key是否在字典map中;

7. 輸入輸出

content作為變數儲存使用者輸入;message為提示使用者的資訊,將列印在控制檯;

  • content = input("mesage"):獲取使用者輸入內容(在Python 2.7裡使用raw_input()函式);
  • print(content):將content列印輸出到控制檯;

8. 檔案相關

xxx.txt是一個txt檔案;file_object為檔案物件;

開啟檔案的示例

with open('xxx.txt') as file_object:
    contents = file_object.read()
    print(contents)
  • open('xxx.txt'):以只讀方式開啟檔案,操作檔案的前置工作。待操作檔案需要與程式在同一目錄下,或者使用相對路徑 \ ;
  • open('xxx.txt', 'w'):以寫入方式開啟檔案,不換行。其他引數還有r讀取、a附加、r+讀寫;
  • close('xxx.txt'):關閉檔案;
  • file_object.read():讀取檔案;
  • file_object.readlines():將檔案各行儲存在一個列表裡;

9. json模組

content是要操作的內容;file_object是檔案物件;json是模組名

  • json.dump(content, file_object):將content內容存入檔案物件;
  • json.load(file_object):將檔案物件裡的內容載入;

10. unittest測試模組

self是Python的關鍵字,用於方法中;a為程式設計師編寫方法的執行結果;b為該函式的預期結果;

  • unittest.TestCase:unittest模組裡的測試類,所有測試類都要繼承TestCase類;
  • unittest.main():讓Python執行檔案中的測試;
  • setUp(self):構建前置條件的方法,在一個測試類中只執行一次;

常用的斷言方法

  • self.assertEqual(a, b):核實 a == b;
  • self.assertNotEqual(a, b):核實 a != b;
  • self.assertTrue(a):核實a為 True;
  • self.assertFalse(a):核實a為 False;
  • self.assertIn(item, list):核實item在list中;
  • self.assertNotIn(item, list):核實item不在list中;

11. time模組

formatStr為格式化控制符組成的字串;timeStr為具有某種格式的時間字串;second為數字,表示秒;

時間獲取

  • time():獲取當前時間戳,即計算機內部時間值,返回浮點數;
  • ctime():獲取當前時間並以易讀方式表示,返回字串;
  • gmtime():獲取當前時間,表示為計算機可處理的時間格式;

格式化控制符

格式化字串 日期/時間說明 值範圍
%Y 年份 0000~9999,如:2021
%m 月份 01~12,如:0
%B 月份名稱 January~December,如:April
%b 月份名稱縮寫 Jan~Dec,如:Apr
%d 日期 01~31,如:21
%A 星期 Monday~Sunday,如:Wednesday
%a 星期縮寫 Mon~Sun,如:Wed
%H 小時(24h制) 00~23,如:12
%l 小時(12h制) 01~12,如:7
%p 上/下午 AM,PM
%M 分鐘 00~59
%S 00~59

時間格式化

  • strftime(formatStr, time.gmtime()):定義輸出效果timeStr,將計算機可處理的時間以特定格式返回;
  • strptime(timeStr, formatStr):定義輸入效果,將特定格式的時間轉換成計算機可處理的時間格式;

程式計時

  • perf_counter():返回CPU級別的精確事件計數值,單位秒;
  • sleep(second):程式休眠second秒,可以是浮點數;

12. random模組

a、b為數字;k為數字,表示步長;seq表示序列

基本隨機數函式

  • seed(a):初始化給定隨機數種子,預設為當前系統時間。產生種子a對應的序列;
  • random():生成一個[0.0 , 1.0)之間的隨機小數;

擴充套件隨機數函式

  • randint(a, b):生成一個[a , b]之間的整數;
  • randrange(a, b):生成一個[a, b)之間的隨機整數;
  • randrange(a, b, k):生成一個[a, b)之間以k為步長的隨機整數;
  • getrandbits(a):生成一個a位元的隨機整數;
  • uniform(a, b):生成一個[a, b]之間的隨機小數;
  • choice(seq):從序列seq中堆積選擇一個元素;
  • shuffle(seq):將序列seq中的元素隨機排列,返回打亂後的序列;

13. jieba模組

jieba庫是一個優秀的中文分詞第三方庫。string為一串中文字串;

  • lcut(string):精確模式,返回一個列表型別的分詞結果(中國, 是, 一個, 偉大, 的, 國家);
  • lcut(string, cut_all=True):全模式,返回一個列表型別的分詞結果,存在冗餘(中國, 國是, 一個, 偉大, 的, 國家);
  • lcut_for_search(string):搜尋引擎模式,返回一個列表型別的分詞結果,存在冗餘(中華, 華人, 人民, 共和, 共和國, 中華人民共和國, 是, 偉大, 的);
  • add_word(string):向分詞詞典增加新詞string;


最後

新人制作,如有錯誤,歡迎指出,感激不盡!
歡迎關注公眾號,會分享一些更日常的東西!
如需轉載,請標註出處!
Python | Python常用函式、方法示例總結(API)

相關文章