天天看點

Python知識點備忘錄

檔案開頭:

1

2

3

<code>#!/usr/bin/env python</code>

<code># -*- coding:utf-8 -*-</code>

<code>#上面一行适用于3以前的版本</code>

當行注釋:# 注釋

多行注釋:""" 注釋 """  或  '''注釋'''

輸入密碼:

<code>import</code> <code>getpass</code>

<code>pwd </code><code>=</code> <code>getpass.getpass(</code><code>"請輸入密碼:"</code><code>)</code>

子產品查找路徑:

<code>import</code> <code>sysprint(sys.path)</code><code>#['', 'D:\\Program Files\\Python35\\python35.zip', ...</code>

<code>#空格代表與執行檔案同一目錄,非目前路徑</code>

<code>#但在Python的指令行模式下,則代表目前路徑</code>

指令行參數:

<code>import</code> <code>sys</code>

<code>print</code><code>(sys.argv)</code>

Python指令行模式下自動補全功能(linux):

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<code>#!/usr/bin/env python </code>

<code># python startup file </code>

<code>import</code> <code>readline</code>

<code>import</code> <code>rlcompleter</code>

<code>import</code> <code>atexit</code>

<code>import</code> <code>os</code>

<code># tab completion </code>

<code>readline.parse_and_bind(</code><code>'tab: complete'</code><code>)</code>

<code># history file </code>

<code>histfile </code><code>=</code> <code>os.path.join(os.environ[</code><code>'HOME'</code><code>], </code><code>'.pythonhistory'</code><code>)</code>

<code>try</code><code>:</code>

<code>    </code><code>readline.read_history_file(histfile)</code>

<code>except</code> <code>IOError:</code>

<code>    </code><code>pass</code>

<code>atexit.register(readline.write_history_file, histfile)</code>

<code>del</code> <code>os, histfile, readline, rlcompleter</code>

定義子程式:

Python用def,perl用sub,JavaScript用function。别再搞錯了,你這個sb

清單切片:

<code>&gt;&gt;&gt; num </code><code>=</code> <code>[</code><code>0</code><code>,</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>,</code><code>5</code><code>]</code>

<code>&gt;&gt;&gt; num[</code><code>1</code><code>:</code><code>4</code><code>]   </code><code>#取下表1~3的值,</code>

<code>[</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>]</code>

<code>&gt;&gt;&gt; num[</code><code>1</code><code>:</code><code>-</code><code>1</code><code>] </code><code>#取下标1至-1的值,不包括-1</code>

<code>[</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>]</code>

<code>&gt;&gt;&gt; num[</code><code>0</code><code>:</code><code>3</code><code>]  </code>

<code>[</code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>]</code>

<code>&gt;&gt;&gt; num[:</code><code>3</code><code>]  </code><code>#0可以省略</code>

<code>&gt;&gt;&gt; num[::</code><code>2</code><code>]  </code><code>#第三個參數代表步長</code>

<code>[</code><code>0</code><code>, </code><code>2</code><code>, </code><code>4</code><code>]</code>

追加與插入:

<code>&gt;&gt;&gt; num.append(</code><code>6</code><code>)</code>

<code>&gt;&gt;&gt; num</code>

<code>[</code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>]</code>

<code>&gt;&gt;&gt; num.insert(</code><code>0</code><code>,</code><code>-</code><code>1</code><code>)  </code><code>#第一個參數表示插入元素的下标</code>

<code>[</code><code>-</code><code>1</code><code>, </code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>]</code>

清單合并:

<code>&gt;&gt;&gt; alpha </code><code>=</code> <code>[</code><code>'a'</code><code>,</code><code>'b'</code><code>,</code><code>'c'</code><code>,</code><code>'d'</code><code>]</code>

<code>&gt;&gt;&gt; alpha.extend(num)</code>

<code>&gt;&gt;&gt; alpha</code>

<code>[</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>, </code><code>'d'</code><code>, </code><code>-</code><code>1</code><code>, </code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>]</code>

删除與批量删除:

<code>&gt;&gt;&gt; alpha.remove(</code><code>'c'</code><code>)</code>

<code>[</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'d'</code><code>, </code><code>-</code><code>1</code><code>, </code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>]</code>

<code>&gt;&gt;&gt; alpha.pop()    </code><code>#remove and return item at index (default last).可帶參數,指定要删除元素的下标</code>

<code>6</code>

<code>[</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'d'</code><code>, </code><code>-</code><code>1</code><code>, </code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>]</code>

<code>&gt;&gt;&gt; </code><code>del</code> <code>alpha[</code><code>1</code><code>:</code><code>4</code><code>]</code>

<code>[</code><code>'a'</code><code>, </code><code>0</code><code>, </code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>]</code>

淺拷貝:

<code>&gt;&gt;&gt; list1 </code><code>=</code> <code>[</code><code>0</code><code>,</code><code>1</code><code>,[</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>],</code><code>5</code><code>,</code><code>6</code><code>]</code>

<code>&gt;&gt;&gt; list2 </code><code>=</code> <code>list1.copy()</code>

<code>&gt;&gt;&gt; list2</code>

<code>[</code><code>0</code><code>, </code><code>1</code><code>, [</code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>], </code><code>5</code><code>, </code><code>6</code><code>]</code>

<code>&gt;&gt;&gt; list1[</code><code>2</code><code>][</code><code>2</code><code>]</code><code>=</code><code>3</code>

<code>[</code><code>0</code><code>, </code><code>1</code><code>, [</code><code>2</code><code>, </code><code>3</code><code>, </code><code>3</code><code>], </code><code>5</code><code>, </code><code>6</code><code>]</code>

深拷貝:

<code>import</code> <code>copy</code>

<code>&gt;&gt;&gt; list3 </code><code>=</code> <code>copy.deepcopy(list1)</code>

<code>&gt;&gt;&gt; list1[</code><code>2</code><code>][</code><code>2</code><code>]</code><code>=</code><code>4</code>

<code>&gt;&gt;&gt; list3</code>

<code>&gt;&gt;&gt; list1</code>

擷取下标:

<code>[</code><code>5</code><code>, </code><code>4</code><code>, </code><code>3</code><code>, </code><code>2</code><code>, </code><code>1</code><code>, </code><code>0</code><code>, </code><code>'b'</code><code>, </code><code>'a'</code><code>]</code>

<code>&gt;&gt;&gt; alpha.index(</code><code>'b'</code><code>)</code>

<code>&gt;&gt;&gt; alpha.index(</code><code>'d'</code><code>)</code>

<code>Traceback (most recent call last):</code>

<code>  </code><code>File</code> <code>"&lt;stdin&gt;"</code><code>, line </code><code>1</code><code>, </code><code>in</code> <code>&lt;module&gt;</code>

<code>ValueError: </code><code>'d'</code> <code>is</code> <code>not</code> <code>in</code> <code>list</code>

統計數量:

<code>&gt;&gt;&gt;</code>

<code>&gt;&gt;&gt; list3.count(</code><code>1</code><code>)</code>

<code>1</code>

<code>&gt;&gt;&gt; list3.count(</code><code>3</code><code>)</code>

<code>0</code>

排序、翻轉、清空:

18

19

20

21

22

<code>&gt;&gt;&gt; alpha.sort()            </code><code>#排序隻能是純數字或字元串,不同類型無法排序</code>

<code>TypeError: unorderable types: </code><code>str</code><code>() &lt; </code><code>int</code><code>()</code>

<code>&gt;&gt;&gt; a2 </code><code>=</code> <code>[</code><code>'2'</code><code>,</code><code>'1'</code><code>]</code>

<code>&gt;&gt;&gt; a2.sort()</code>

<code>&gt;&gt;&gt; a2</code>

<code>[</code><code>'1'</code><code>, </code><code>'2'</code><code>]</code>

<code>&gt;&gt;&gt; a3 </code><code>=</code> <code>[</code><code>'b'</code><code>,</code><code>'d'</code><code>,</code><code>'a'</code><code>,</code><code>'c'</code><code>]</code>

<code>&gt;&gt;&gt; a3.sort()</code>

<code>&gt;&gt;&gt; a3</code>

<code>[</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>, </code><code>'d'</code><code>]</code>

<code>&gt;&gt;&gt; alpha.reverse()</code>

<code>&gt;&gt;&gt; list1.clear()</code>

<code>[]</code>

元組(tuple):

tuple.count()

tuple.index()

字元串:

大部分操作同數組。

去除首尾space字元:

<code>&gt;&gt;&gt; s </code><code>=</code> <code>"   sdfjlsjdflks   "</code>

<code>&gt;&gt;&gt; s</code>

<code>'   sdfjlsjdflks   '</code>

<code>&gt;&gt;&gt; s.strip()</code>

<code>'sdfjlsjdflks'</code>

<code>'   sdfjlsjdflks   '</code>   <code>#strip不會改變原字元串,隻會傳回去除space後的字元串</code>

左右填充與居中填充:

<code>&gt;&gt;&gt; s </code><code>=</code> <code>"hello,world"</code>

<code>&gt;&gt;&gt; s.ljust(</code><code>40</code><code>,</code><code>"#"</code><code>)</code>

<code>'hello,world#############################'</code>

<code>&gt;&gt;&gt; s.rjust(</code><code>40</code><code>,</code><code>"#"</code><code>)</code>

<code>'#############################hello,world'</code>

<code>&gt;&gt;&gt; s.center(</code><code>40</code><code>,</code><code>"#"</code><code>)</code>

<code>'##############hello,world###############'</code>

翻譯:

<code>&gt;&gt;&gt; s </code><code>=</code> <code>"Hello World!"</code>

<code>&gt;&gt;&gt; p </code><code>=</code> <code>str</code><code>.maketrans(</code><code>"abcdefg"</code><code>,</code><code>"3!@#$%^"</code><code>)</code>

<code>&gt;&gt;&gt; s.translate(p)</code>

<code>'H$llo Worl</code><code>#!</code>

字典:

<code>&gt;&gt;&gt; dic1 </code><code>=</code> <code>{</code><code>'no1'</code><code>:</code><code>12</code><code>,</code><code>'no2'</code><code>:</code><code>13</code><code>,</code><code>'no3'</code><code>:</code><code>11</code><code>}</code>

<code>&gt;&gt;&gt; dic1</code>

<code>{</code><code>'no1'</code><code>: </code><code>12</code><code>, </code><code>'no2'</code><code>: </code><code>13</code><code>, </code><code>'no3'</code><code>: </code><code>11</code><code>}</code>

<code>&gt;&gt;&gt; dic1.pop(</code><code>'no1'</code><code>)</code>

<code>12</code>

<code>{</code><code>'no2'</code><code>: </code><code>13</code><code>, </code><code>'no3'</code><code>: </code><code>11</code><code>}</code>

<code>&gt;&gt;&gt; </code><code>del</code> <code>dic1[</code><code>'no2'</code><code>]</code>

<code>{</code><code>'no3'</code><code>: </code><code>11</code><code>}</code>

<code>&gt;&gt;&gt; dic1[</code><code>'no4'</code><code>] </code><code>=</code> <code>33</code>

<code>{</code><code>'no4'</code><code>: </code><code>33</code><code>, </code><code>'no3'</code><code>: </code><code>11</code><code>}</code>

<code>&gt;&gt;&gt; dic1.popitem()  </code><code>#随機删除</code>

<code>(</code><code>'no4'</code><code>, </code><code>33</code><code>)</code>

擷取和查找:

<code>&gt;&gt;&gt; dic </code><code>=</code> <code>{</code><code>"zs"</code><code>:</code><code>33</code><code>,</code><code>"ls"</code><code>:</code><code>45</code><code>,</code><code>"ww"</code><code>:</code><code>56</code><code>,</code><code>"zl"</code><code>:</code><code>90</code><code>}</code>

<code>&gt;&gt;&gt; dic[</code><code>'dd'</code><code>]</code>

<code>KeyError: </code><code>'dd'</code>

<code>&gt;&gt;&gt; dic.get(</code><code>'dd'</code><code>)    </code><code>#避免報錯</code>

<code>&gt;&gt;&gt; </code><code>'ls'</code> <code>in</code> <code>dic         </code><code>#判斷字典裡是否有某個鍵,用in</code>

<code>True</code>

擷取keys和values清單:

<code>&gt;&gt;&gt; dic.values()</code>

<code>dict_values([</code><code>45</code><code>, </code><code>33</code><code>, </code><code>56</code><code>, </code><code>90</code><code>])</code>

<code>&gt;&gt;&gt; dic.keys()</code>

<code>dict_keys([</code><code>'ls'</code><code>, </code><code>'zs'</code><code>, </code><code>'ww'</code><code>, </code><code>'zl'</code><code>])</code>

update:

<code>&gt;&gt;&gt; dic</code>

<code>{</code><code>'ls'</code><code>: </code><code>45</code><code>, </code><code>'zs'</code><code>: </code><code>33</code><code>, </code><code>'ww'</code><code>: </code><code>56</code><code>, </code><code>'zl'</code><code>: </code><code>90</code><code>}</code>

<code>&gt;&gt;&gt; dic2</code>

<code>{</code><code>'zs'</code><code>: </code><code>33</code><code>, </code><code>'kk'</code><code>: </code><code>99</code><code>, </code><code>'ls'</code><code>: </code><code>33</code><code>, </code><code>'ww'</code><code>: </code><code>44</code><code>, </code><code>'zl'</code><code>: </code><code>90</code><code>}</code>

<code>&gt;&gt;&gt; dic.update(dic2)</code>

<code>{</code><code>'kk'</code><code>: </code><code>99</code><code>, </code><code>'zl'</code><code>: </code><code>90</code><code>, </code><code>'ls'</code><code>: </code><code>33</code><code>, </code><code>'zs'</code><code>: </code><code>33</code><code>, </code><code>'ww'</code><code>: </code><code>44</code><code>}</code>

周遊:

<code>#方法1</code>

<code>for</code> <code>key </code><code>in</code> <code>info:</code>

<code>    </code><code>print</code><code>(key,info[key])</code>

<code>    </code> 

<code>#方法2</code>

<code>for</code> <code>k,v </code><code>in</code> <code>info.items(): </code><code>#會先把dict轉成list,資料裡大時莫用</code>

<code>    </code><code>print</code><code>(k,v)</code>

集合

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

<code>s </code><code>=</code> <code>set</code><code>([</code><code>3</code><code>,</code><code>5</code><code>,</code><code>9</code><code>,</code><code>10</code><code>])      </code><code>#建立一個數值集合  </code>

<code>t </code><code>=</code> <code>set</code><code>(</code><code>"Hello"</code><code>)         </code><code>#建立一個唯一字元的集合  </code>

<code>a </code><code>=</code> <code>t | s          </code><code># t 和 s的并集  </code>

<code>b </code><code>=</code> <code>t &amp; s          </code><code># t 和 s的交集  </code>

<code>c </code><code>=</code> <code>t – s          </code><code># 求差集(項在t中,但不在s中) </code>

<code>d </code><code>=</code> <code>t ^ s          </code><code># 對稱差集(項在t或s中,但不會同時出現在二者中) </code>

<code>   </code> 

<code>  </code> 

<code>基本操作:  </code>

<code>t.add(</code><code>'x'</code><code>)            </code><code># 添加一項  </code>

<code>s.update([</code><code>10</code><code>,</code><code>37</code><code>,</code><code>42</code><code>])  </code><code># 在s中添加多項  </code>

<code>使用remove()可以删除一項:  </code>

<code>t.remove(</code><code>'H'</code><code>)  </code>

<code>len</code><code>(s)  </code>

<code>set</code> <code>的長度  </code>

<code>x </code><code>in</code> <code>s  </code>

<code>測試 x 是否是 s 的成員  </code>

<code>x </code><code>not</code> <code>in</code> <code>s  </code>

<code>測試 x 是否不是 s 的成員  </code>

<code>s.issubset(t)  </code>

<code>s &lt;</code><code>=</code> <code>t  </code>

<code>測試是否 s 中的每一個元素都在 t 中  </code>

<code>s.issuperset(t)  </code>

<code>s &gt;</code><code>=</code> <code>t  </code>

<code>測試是否 t 中的每一個元素都在 s 中  </code>

<code>s.union(t)  </code>

<code>s | t  </code>

<code>傳回一個新的 </code><code>set</code> <code>包含 s 和 t 中的每一個元素  </code>

<code>s.intersection(t)  </code>

<code>s &amp; t  </code>

<code>傳回一個新的 </code><code>set</code> <code>包含 s 和 t 中的公共元素  </code>

<code>s.difference(t)  </code>

<code>s </code><code>-</code> <code>t  </code>

<code>傳回一個新的 </code><code>set</code> <code>包含 s 中有但是 t 中沒有的元素  </code>

<code>s.symmetric_difference(t)  </code>

<code>s ^ t  </code>

<code>傳回一個新的 </code><code>set</code> <code>包含 s 和 t 中不重複的元素  </code>

<code>s.copy()  </code>

<code>傳回 </code><code>set</code> <code>“s”的一個淺複制</code>

檔案操作:

打開與打開模式:

F=open('path/file','r') 隻讀

F=open('path/file','w') 隻寫,存在則清空,不存在則建立

F=open('path/file','x')  3.0版本,隻寫,檔案存在則報錯,不存在則建立

F=open('path/file','a')  追加

其他模式:

指定編碼:

讀取:

mfile.read(n)  #預設讀取字元,在‘b’模式下,按位元組讀取。

本文轉自 d185740815 51CTO部落格,原文連結:http://blog.51cto.com/luotaoyang/1868221,如需轉載請自行聯系原作者