目錄
- 前言
- 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為清單
-
:求x的絕對值;abs(x)
-
:商餘,同時輸出商和餘數,divmod(10, 3) ---> (3, 1);divmod(x, y)
-
:幂運算,x**y;pow(x, y)
-
:幂餘,(x**y)%z;pow(x, y, z)
-
:四舍五入,不保留小數;round(x)
-
:四舍五入,保留d位小數;round(x, d)
-
:擷取數字清單中的最小值;min(list)
-
:擷取數字清單中的最大值;max(list)
-
:擷取數字清單中的總和;sum(list)
-
:将x取整,攝取小數部分;int(x)
-
:将x變成浮點數,增加小數部分;float(x)
-
:将x變成複數,增加虛數部分;complex(x)
string為某個字元串;num為某個數字;firstNum為第一個數字;lastNum為最後一個數字;step為步長;u為unicode編碼字元;old為老的子串;new為新的子串;sep為分隔的子串規則;fillchar為填充的字元;chars為字元;
字元串的操作方法:
-
:讓每個單詞的首字母都改成大寫;string.title()
-
:字元串全字元小寫;string.lower()
-
:字元串全字元大寫;string.upper()
-
:所有old的子串被new子串替換;string.replace(old, new)
-
:根據寬度num将字元串居中;string.center(num)
-
:根據寬度num将字元串居中,其餘字元使用fillchar填充;string.center(num, fillchar)
-
:删去字元串末尾的空白;string.rstrip()
-
:删去字元串開頭的空白;string.lstrip()
-
:同時删去字元串兩端空白;string.strip()
-
:删去字元串兩邊出現的字元chars;string.strip(chars)
-
:在string變量中除最後元素外每個元素後增加一個new子串;new.join(string)
字元串的擷取功能:
-
:擷取xxx在string中出現的次數;string.count('xxx')
-
:以空格為分隔符将字元串拆分成多個部分,并儲存在一個清單裡;string.split()
-
:傳回清單,根據sep将字元串分隔;string.split(sep)
-
:擷取字元串的長度;len(string)
-
:傳回u編碼的字元x;chr(u)
-
:擷取x的Unicode編碼;ord(x)
其他類型轉字元串的方法:
-
:将數字num轉換成字元串;str(num)
-
:将數字num轉成十六進制字元串;hex(num)
-
:将數字num轉成八進制字元串;oct(num)
字元串切片(同清單切片):
-
:根據步長對字元串切片;string[firstNum: lastNum: step]
-
:倒轉字元串;string[::-1]
字元串的格式化:
-
:不設定指定位置,按預設順序輸出 hello world;"{} {}".format("hello", "world")
-
:設定指定位置,輸出 world hello world;"{1} {0} {1}".format("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= []
數字清單的建立與操作功能:
-
:生成一系列數字,包含firstNum,不包含lastNum。通常在周遊時使用,如range(firstNum, lastNum)
;for num in range(1, 5):
-
:指定步長生成一系列數字,包含firstNum,不包含lastNum,步長為step;range(firstNum, lastNum, step)
-
:生成數字清單,包含firstNum,不包含lastNum;list(range(firstNum, lastNum))
-
:使用清單解析生成數字清單;list = [num**2 for num in range(1s, 11)]
-
min(list)
-
max(list)
-
sum(list)
清單的增删功能:
-
:将object元素添加到清單末尾;list.append(object)
-
:将object元素添加到清單任意位置,需要指定索引index;list.insert(index, object)
-
:删除list清單裡指定索引index的元素;del list[index]
-
:彈出清單末尾元素;list.pop()
-
:彈出清單中指定索引index的元素;list.pop(index)
-
:将清單中元素object删除,隻删除第一個指定的值;list.remove(object)
-
:删除清單所有元素;list.clear()
清單的操作功能:
-
:根據首字母對清單進行排序,永久性修改;list.sort()
-
:按字母順序相反的順序排列清單元素,永久性修改;list.sort(reverse = True)
-
:根據首字母對清單進行排序,臨時性修改;sorted(list)
-
:按字母順序相反的順序排列清單元素,臨時性修改;sorted(list, reverse=True)
-
:反轉清單排列順序;list.reverse()
-
:将清單類型轉變為元祖類型,實作資料保護;tuple(list)
-
:用清單list2替換list1切片後說對應元素子清單;list1[i: j: k] = list2
-
:将清單list重複n次,并更新;list *= n
清單的擷取功能:
-
:擷取list清單的長度;len(list)
-
:切片,擷取索引為firstNum到lastNum-1的元素組成新清單(可用于周遊部分清單、複制清單);list[firstNum: lastNum]
-
:切片,擷取從頭開始到lastNum-1的元素組成新清單;list[: lastNum]
-
:切片,擷取索引為firstNum到清單末尾的元素組成新清單(當first為負數時,為倒數幾個);list[firstNum:]
-
:生成新清單,複制list中所有元素;list.copy()
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中無x,則将x加入S;S.add(x)
-
:移除元素x,若x不在S中,不報錯;S.discard(x)
-
:移除元素x,若x不在S中,産生KeyError異常;S.remove(x)
-
:移除所有元素;S.clear()
-
:随機傳回一個元素,并更新S,若S為空則産生KeyError異常;S.pop()
-
:傳回集合S的一個副本;S.copy()
-
:傳回集合S的元素個數;len(S)
-
:判斷x是否在S中;x in S
-
:判斷x是否不在S中;x not in S
-
:将其他類型變量轉變為集合類型;set(x)
序列是一個基類類型,由字元串、元祖、清單構成。x為元素;S、T為序列;n為數字;i、j為索引;k為步長;
序列化通用操作符:
-
x in S
-
x not in S
-
:連接配接兩個序列;S + T
-
:将序列S複制n次;S*n
-
:傳回第i個元素;S[i]
-
:切片,含i不含j;S[i: j]
-
:切片,以k為步長,含i不含j;S[i: j: k]
-
:傳回序列S的長度,即元素個數;len(S)
-
:傳回序列中的最小值;min(S)
-
:傳回序列中的最大值;max(S)
-
:傳回序列S第一次出現x的位置;S.index(x)
-
:傳回序列S從i到j第一次出現x的位置;S.index(x, i, j)
-
:傳回序列S中出現x的總次數;S.count(x)
map為某個字典;key為鍵;value為值;
建立字典的示例:
-
alien0 = {'color': 'green', 'points': 5}
-
:建立空字典;map = {}
- 由類似對象組成字典,如下:
favorite_languages = { 'jen': 'python', 'sarah': 'ruby', 'edward': 'ruby', 'phil': 'python', }
字典的擷取功能:
-
:根據key擷取value,如果key為字元串需要用引号辨別;map[key]
-
:傳回字典中所有鍵值對的資訊。可用于用于map字典的周遊,如:map.items()
for key, value in map.items():
-
:傳回字典中所有鍵的資訊。可用于周遊map字典的鍵,如:map.keys()
for object in map.keys():
-
:傳回字典中所有值的資訊。可用于周遊map字典的值,如:map.values()
for object in map.values():
-
:周遊map字典的值,剔除重複項;set(map.values())
-
:若鍵存在,則傳回相應值,不存在則傳回<default>值;map.get(key, <default>)
-
map.pop(key, <default>)
-
:随機從字典map中取出一個鍵值對,以元祖形式傳回;map.popitem()
-
:擷取map中的元素個數;len(map)
字典的操作功能:
-
:給map字典新增一對鍵值對 / 或修改某鍵的值;map[key] = value
-
:删除map字典中鍵]為key的鍵值對;del map[key]
-
:删除所有的鍵值對;map.clear()
字典的判斷功能:
-
:判斷鍵key是否在字典map中;key in map
content作為變量儲存使用者輸入;message為提示使用者的資訊,将列印在控制台;
-
:擷取使用者輸入内容(在Python 2.7裡使用content = input("mesage")
函數);raw_input()
-
:将content列印輸出到控制台;print(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是子產品名
-
:将content内容存入檔案對象;json.dump(content, file_object)
-
:将檔案對象裡的内容加載;json.load(file_object)
self是Python的關鍵字,用于方法中;a為程式員編寫方法的運作結果;b為該函數的預期結果;
-
:unittest子產品裡的測試類,所有測試類都要繼承TestCase類;unittest.TestCase
-
:讓Python運作檔案中的測試;unittest.main()
-
:建構前置條件的方法,在一個測試類中隻執行一次;setUp(self)
常用的斷言方法:
-
:核實 a == b;self.assertEqual(a, b)
-
:核實 a != b;self.assertNotEqual(a, b)
-
:核實a為 True;self.assertTrue(a)
-
:核實a為 False;self.assertFalse(a)
-
:核實item在list中;self.assertIn(item, list)
-
:核實item不在list中;self.assertNotIn(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 | 秒 |
時間格式化:
-
:定義輸出效果timeStr,将計算機可處理的時間以特定格式傳回;strftime(formatStr, time.gmtime())
-
:定義輸入效果,将特定格式的時間轉換成計算機可處理的時間格式;strptime(timeStr, formatStr)
程式計時:
-
:傳回CPU級别的精确事件計數值,機關秒;perf_counter()
-
:程式休眠second秒,可以是浮點數;sleep(second)
a、b為數字;k為數字,表示步長;seq表示序列
基本随機數函數:
-
:初始化給定随機數種子,預設為目前系統時間。産生種子a對應的序列;seed(a)
-
:生成一個[0.0 , 1.0)之間的随機小數;random()
擴充随機數函數:
-
:生成一個[a , b]之間的整數;randint(a, b)
-
:生成一個[a, b)之間的随機整數;randrange(a, b)
-
:生成一個[a, b)之間以k為步長的随機整數;randrange(a, b, k)
-
:生成一個a比特的随機整數;getrandbits(a)
-
:生成一個[a, b]之間的随機小數;uniform(a, b)
-
:從序列seq中堆積選擇一個元素;choice(seq)
-
:将序列seq中的元素随機排列,傳回打亂後的序列;shuffle(seq)
jieba庫是一個優秀的中文分詞第三方庫。string為一串中文字元串;
-
:精确模式,傳回一個清單類型的分詞結果(中國, 是, 一個, 偉大, 的, 國家);lcut(string)
-
:全模式,傳回一個清單類型的分詞結果,存在備援(中國, 國是, 一個, 偉大, 的, 國家);lcut(string, cut_all=True)
-
:搜尋引擎模式,傳回一個清單類型的分詞結果,存在備援(中華, 華人, 人民, 共和, 共和國, 中華人民共和國, 是, 偉大, 的);lcut_for_search(string)
-
:向分詞詞典增加新詞string;add_word(string)
新人制作,如有錯誤,歡迎指出,感激不盡!
歡迎關注公衆号,會分享一些更日常的東西!
如需轉載,請标注出處!