綜述
應用場景:
首選是網絡應用,包括網站、后臺服務等等;其次是許多日常需要的小工具,包括系統管理員需要的腳本任務等等;另外就是把其他語言開發的程序再包裝起來,方便使用。
優缺點:
優點:“優雅”、“明確”、“簡單”、“內置電池( batteries included)”(各種庫),所以開發速度快。
缺點:運行慢,源碼公開。
要點
!/usr/bin/env python3 #為了在linux上運行
# -*- coding: utf-8 -*- #編碼聲明
數據類型
- 整數
1
0xff00
etc. - 浮點數
3.14
3e-5
- 字符串
"abc"
'abc'
r'a\b\vc\\cc\\' # 非轉義
、 - 布爾值
True
False
,可進行and or not
運算 - 空值
None
- 常量
PI=3.1415926 #默認大寫,其實也是變量
- 在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉為UTF-8編碼.在最新的Python 3版本中,字符串是以Unicode編碼的
- Python提供了
ord()
函數獲取字符的整數表示,chr()
函數把編碼轉換為對應的字符:
>>>ord('A')
65
>>>chr(65)
'A'
>>>chr(25991)
'文'
>>>'\u4e2d\u6587' # 16進制的str
'中文'
- 以Unicode表示的str通過encode()方法可以編碼為指定的bytes.如果我們從網絡或磁盤上讀取了字節流,那么讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
- 格式化輸出
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
- 列表
classmates = ['Michael', 'Bob', 'Tracy']
.可以下標訪問。方法主要有.append('Lucy')
;.pop()
;.pop(i)
;classmates.insert(1, 'Jack')
里面數據類型可以不同 - tuple 不可更改的列表
classmates = ('Michael', 'Bob', 'Tracy')
- dic
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
;方法:d.get('Thomas', -1)
;d.pop('Bob')
- set
s = set([1, 1, 2, 2, 3, 3])
;s.add(4)
;s.remove(4)
;兩個set可以做數學意義上的交集、并集等操作
函數
函數主要注意默認參數,可變參數,關鍵字參數,命名關鍵字參數。
*args是可變參數,args接收的是一個tuple;**kw是關鍵字參數,kw接收的是一個dict。以及調用函數時如何傳入可變參數和關鍵字參數的語法:可變參數既可以直接傳入:func(1, 2, 3)
,又可以先組裝list或tuple,再通過*args
傳入:func(*(1, 2, 3))
;關鍵字參數既可以直接傳入:func(a=1, b=2)
,又可以先組裝dict,再通過**kw
傳入:func(**{'a': 1, 'b': 2})
。使用*args
和**kw
是Python的習慣寫法,當然也可以用其他參數名,但最好使用習慣用法。命名的關鍵字參數是為了限制調用者可以傳入的參數名,同時可以提供默認值。定義命名的關鍵字參數在沒有可變參數的情況下不要忘了寫分隔符*
,否則定義的將是位置參數。