1. 程式人生 > >Python知識點整理(基礎篇)

Python知識點整理(基礎篇)

Python 資料型別基礎 

字面常量 

所謂字面,就是我們在程式中直接以值的行式來操作、表現(可以對照變數);
所謂常量,是指這些值不能再被改變了。
字面常量的種類:
(1)整形
整形數值 預設是int型,例如:22,33
如果要表示一個long型,則加 l、L字尾。例如:22L、33L
(2)浮點型
浮點數預設是雙精度dobule型的。例如:33.3
如果要表示單精度浮點型,加f、F字尾。例如:33.3F
(3)字串型
包含在雙引號""中的字元序列,是字串。例如:“hello,world”
(4)字元型
用單引號''包含,或者用/轉義的字元,是字元型。例如:/n、'a'

Python表示式

列表推導式(list comprehension)

語法:[expr for iter_var in iterable] 或 [expr for iter_var in iterable if cond_expr] 說明:
第一種語法:首先迭代iterable裡所有內容,每一次迭代,都把iterable裡相應內容放到iter_var中,再在表示式中應用該iter_var的內容,最後用表示式的計算值生成一個列表。
第二種語法:加入了判斷語句,只有滿足條件的內容才把iterable裡相應內容放到iter_var中,再在表示式中應用該iter_var的內容,最後用表示式的計算值生成一個列表。

>>> [x**2 for x in range(9)]
[0, 1, 4, 9, 16, 25, 36, 49, 64]
>>> [x**2 for x in range(9) if x%2==0]
[0, 4, 16, 36, 64]
>>> [(x+1,y+1) for x in range(3) for y in range(3) if x>=y]  #巢狀的for語句?
[(1, 1), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3)]

生成器表示式

語法:(expr for iter_var in iterable) 或 (expr for iter_var in iterable if cond_expr)

說 明:列表解析是比較早的Python版本里就引進的(好像是2.0版本),而生成器表示式則是在2.4中引入的新內容,它和列表解析的語法很像,但是在大資料量處理時,生成器表示式的優勢就體現出來了,因為它的記憶體使用方式更好,效率更高,它並不建立一個列表,只是返回一個生成器。當然,列表解析並不會被遺棄。
舉例:
>>> (i + 1 for i in range(10) if i % 2)
<generator object <genexpr> at 0x011DC5D0>

>>> g = (i + 1 for i in range(10) if i % 2)
>>> l = []
>>> for j in g:
           l.append(j)
>>> l
[2, 4, 6, 8, 10]
從上面可看出,列表解析和生成器表示式語法雖然很像,但實質上還是有很大不同的。

條件表示式

Python2.5之後加入的
smaller = x if x < y else y

Python流程語句

迴圈中的else

在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在迴圈正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。 例子:
#!/usr/bin/python

count = 0
while count < 5:
  print count, " is less than 5"
  count = count + 1
else:
  print count, " is not less than 5"
輸出:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5