天天看點

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

目錄

  • 前言
  • 1. 運算相關
  • 2. Sring與數字
  • 3. 清單相關
  • 4. 集合相關
  • 5. 序列化類型
  • 6. 字典相關
  • 7. 輸入輸出
  • 8. 檔案相關
  • 9. json子產品
  • 10. unittest測試子產品
  • 11. time子產品
  • 12. random子產品
  • 13. jieba子產品
  • 最後

參考資料:

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

結合文法基礎:

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

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變成複數,增加虛數部分;

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格式化函數的字元串模闆,如下圖所示:
    Python | Python常用函數、方法示例總結(API)
  • 數字格式化示例:
    Python | Python常用函數、方法示例總結(API)

字元串反轉函數:

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

           

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中所有元素;

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)

    :将其他類型變量轉變為集合類型;

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

序列化通用操作符:

  • x in S

  • x not in 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的總次數;

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>)

  • map.popitem()

    :随機從字典map中取出一個鍵值對,以元祖形式傳回;
  • len(map)

    :擷取map中的元素個數;

字典的操作功能:

  • map[key] = value

    :給map字典新增一對鍵值對 / 或修改某鍵的值;
  • del map[key]

    :删除map字典中鍵]為key的鍵值對;
  • map.clear()

    :删除所有的鍵值對;

字典的判斷功能:

  • key in map

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

content作為變量儲存使用者輸入;message為提示使用者的資訊,将列印在控制台;
  • content = input("mesage")

    :擷取使用者輸入内容(在Python 2.7裡使用

    raw_input()

    函數);
  • print(content)

    :将content列印輸出到控制台;

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()

    :将檔案各行存儲在一個清單裡;

content是要操作的内容;file_object是檔案對象;json是子產品名
  • json.dump(content, file_object)

    :将content内容存入檔案對象;
  • json.load(file_object)

    :将檔案對象裡的内容加載;

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中;

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

時間格式化:

  • strftime(formatStr, time.gmtime())

    :定義輸出效果timeStr,将計算機可處理的時間以特定格式傳回;
  • strptime(timeStr, formatStr)

    :定義輸入效果,将特定格式的時間轉換成計算機可處理的時間格式;

程式計時:

  • perf_counter()

    :傳回CPU級别的精确事件計數值,機關秒;
  • sleep(second)

    :程式休眠second秒,可以是浮點數;

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中的元素随機排列,傳回打亂後的序列;

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

    :精确模式,傳回一個清單類型的分詞結果(中國, 是, 一個, 偉大, 的, 國家);
  • lcut(string, cut_all=True)

    :全模式,傳回一個清單類型的分詞結果,存在備援(中國, 國是, 一個, 偉大, 的, 國家);
  • lcut_for_search(string)

    :搜尋引擎模式,傳回一個清單類型的分詞結果,存在備援(中華, 華人, 人民, 共和, 共和國, 中華人民共和國, 是, 偉大, 的);
  • add_word(string)

    :向分詞詞典增加新詞string;

新人制作,如有錯誤,歡迎指出,感激不盡!

歡迎關注公衆号,會分享一些更日常的東西!

如需轉載,請标注出處!

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