3. Python簡介
以下的樣本中,輸入和輸出通過是否存在提示符(>>> and ...)來區分:如果要重複該樣本,你必須在提示符出現後,輸入提示符後面的所有內容;沒有以提示符開頭的行是解譯器的輸出。注意樣本中出現從提示符意味著你一定要在最後加上一個空行;這用於結束一個多行命令。
本手冊中的很多樣本,甚至在互動方式下輸入的樣本,都帶有注釋。Python 中的注釋以井號 # 為開始,直到物理行的末尾結束。注釋可以從行首開始,也可以跟在空白或代碼之後,但不能包含在字串內。因為注釋只是為瞭解釋代碼並且不會被Python解譯器解釋,所以敲入樣本的時候可以忽略它們。
例如:
# this is the first commentspam = 1 # and this is the second comment # ... and now a third!text = "# This is not a comment because it's inside quotes."
3.1. Python作為計算機
讓我們嘗試一些簡單的 Python 命令。啟動解譯器然後等待主提示符 >>> 。(這不需要很久。) 3.1.1. 數字
解譯器可作為一個簡單的計算機:你可以向它輸入一個運算式,它將返回其結果。運算式文法非常簡單: 運算子 +, -, * 及 / 的使用方法與其他語言一致 ( 例如 Pascal 或 C); 括弧 (()) 可以用來進行分組。例如: >>>
>>> 2 + 24>>> 50 - 5*620>>> (50 - 5*6) / 45.0>>> 8 / 5 # division always returns a floating point number1.6
整數型 (如2, 4, 20)屬於 int類型,帶有小數部分的數字 (如5.0, 1.6) 屬於float浮點型 。在本教程的後面我們會看到更多關於數字類型的內容。
除法(/)總是返回一個float類型數。要做 floor 除法 並且得到一個整數結果(返回商的整數部分) 可以使用 // 運算子;要計算餘數可以使用 %: >>>
>>> 17 / 3 # classic division returns a float5.666666666666667>>>>>> 17 // 3 # floor division discards the fractional part5>>> 17 % 3 # the % operator returns the remainder of the division2>>> 5 * 3 + 2 # result * divisor + remainder17
通過**計算n方[1]: >>>
>>> 5 ** 2 # 5 squared25>>> 2 ** 7 # 2 to the power of 7128
等號 (=) 用於給變數賦值。賦值之後,在下一個提示符之前不會有任何結果顯示: >>>
>>> width = 20>>> height = 5 * 9>>> width * height900
如果變數未"定義"(即未賦值),使用的時候將會報錯︰ >>>
>>> n # try to access an undefined variableTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'n' is not defined
完全支援浮點數;並且與混合的型運算元的運算子將整數運算元轉換為浮點數︰ >>>
>>> 3 * 3.75 / 1.57.5>>> 7.0 / 23.5
在互動模式下,最後一個列印的運算式分配給變數 _。這意味著把 Python 當做案頭計算機使用的時候,可以方便的進行連續計算,例如: >>>
>>> tax = 12.5 / 100>>> price = 100.50>>> price * tax12.5625>>> price + _113.0625>>> round(_, 2)113.06
使用者應該將這個變數視為唯讀。不要試圖去給它賦值 — — 你將會建立出一個獨立的同名局部變數,並且屏蔽了內建變數的魔術效果。
除了 整型 和 浮點,Python 支援其他類型的數字,如 小數 和 分數。Python 也具有內建支援的 複數,並使用 j 或 J 尾碼 (例如指示的虛部3+5j). 3.1.2. 字串
除了數值,Python 還可以操作字串,可以用幾種方法來表示。他們可以將括在單引號 ('...') 或雙引號 ("...") 中,二者等價 [2]。\ 可以用於轉義引號︰ >>>
>>> 'spam eggs' # single quotes'spam eggs'>>> 'doesn\'t' # use \' to escape the single quote..."doesn't">>> "doesn't" # ...or use double quotes instead"doesn't">>> '"Yes," he said.''"Yes," he said.'>>> "\"Yes,\" he said."'"Yes," he said.'>>> '"Isn\'t," she said.''"Isn\'t," she said.'
在互動式解譯器中,輸出的字串會用引號引起來,特殊字元會用反斜線轉義。雖然可能和輸入看上去不太一樣(括起來的引號可能會變),但是兩個字串是相等的。如果字串中只有單引號而沒有雙引號,就用雙引號引用,否則用單引號引用。print () 函數產生可讀性更好的輸出,通過省略引號和通過列印字元轉義和特殊字元︰ >>>
>>> '"Isn\'t," she said.''"Isn\'t," she said.'>>> print('"Isn\'t," she said.')"Isn't," she said.>>> s = 'First line.\nSecond line.' # \n means newline>>> s # without print(), \n is included in the output'First line.\nSecond line.'>>> print(s) # with print(), \n produces a new lineFirst line.Second line.
如果你不想以 \ 將被解釋為特殊字元開頭的字元,您可以通過添加 r 使用 原始字串︰ >>>
>>> print('C:\some\name') # here \n means newline!C:\someame>>> print(r'C:\some\name') # note the r before the quoteC:\some\name