這一篇文章主要介紹函數、模塊、運行python文件等知識。 函數 函數猶如小程式,可以用來執行特定的操作。Python本身提供了很多函數,我們稱這些函數為內置函數。內置函數可以用於編寫數值表達式 >>> abs(-10) 10 >>> 2 // 3 # 整除總是向下取整 0 >>> round(2 ...
這一篇文章主要介紹函數、模塊、運行python文件等知識。
函數
函數猶如小程式,可以用來執行特定的操作。Python本身提供了很多函數,我們稱這些函數為內置函數。內置函數可以用於編寫數值表達式
>>> abs(-10)
10
>>> 2 // 3 # 整除總是向下取整
0
>>> round(2 / 3) # round()
- 使用函數的過程稱為調用函數,調用函數的時候需要提供實參,調用的結果就是返回一個值,稱為函數的返回值。
模塊
可認為模塊是一種擴展,通過將其導入壯大Python功能。
導入模塊的關鍵字為import:
>>> import math
>>> math.floor(32.9) # 向下取整函數(floor的本意為地板,所以是向下取整)
32
>>> math.ceil(32.9) # 向上取整函數(ceil的本意為天花板,所以是向上取整)
33
>>>
- 首先使用
import
導入模塊,再使用moudle.function
的方式使用模塊中的函數 - floor()函數的功能是向下取整,再計算年齡的類似場景很有用
- 一些類似的函數入str()、float()實際上是類的概念
如果只需要導入模塊中的某個函數,使用from module import function
格式,這種再使用的時候就不需要加上首碼了:
>>> from math import sqrt
>>> sqrt(9)
3.0
>>> foo = math.sqrt # 可以使用變數來引用函數
>>> foo(64)
8.0
>>>
複數
用函數sqrt計算負數的平方根會報錯:
>>> from math import sqrt
>>> sqrt(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
>>>
- 這是因為負數的平方根為虛數,而函數sqrt限定值域為實數,並使用其近似的浮點數表示,所以無法計算負數的平方跟
由實部和虛部組成的數為複數,Python標準庫提供了一個專用用於處理複數的模塊:cmath
>>> import cmath # 註意這裡不能使用 from ... import ... 的格式,否則將無法使用常規函數sqrt()
>>> cmath.sqrt(-1)
1j
>>>
>>> (1 + 3J) * (9 + 4j)
(-3+31j) # 從結果可以看出,python提供了對複數的支持
>>>
>>> type(1j)
<class 'complex'> # Python沒有專門的表示虛數的數據類型,而是將虛數視為實部為0的複數
>>> type(10 + 6j)
<class 'complex'>
1j
是個虛數,虛數都是以j
或J
結尾。- 複數算術運算都基於如下定義:
-1
的平方根為1j
。 - Python沒有專門的表示虛數的數據類型,而是將虛數視為實部為0的複數。
關於python文件的運行
互動式解釋器的好處就是可以讓你實時運行寫完的代碼,可以幫助學習者瞭解python的工作原理;但是它也有一個致命的缺點就是退出互動式解釋器之後,編寫的所有代碼都會丟失。顯然我們不可能每次工作都從頭開始,因為我們的終極目標是編寫自己和他人都能運行的程式。
那麼我們就需要一個文本編輯器可以編寫代碼,然後保存成文件復用:
- 打開IDlE,編寫代碼
- 保存文件,文件拓展名務必為.py
命令提示符運行腳本:
- 打開DOS視窗
- 切換到Python可執行文件
- 運行腳本文件
IDE運行腳本:
- 找到文件並打開,運行文件:Run->Run Moudle
- 查看運行的結果是否與預期一致
需要說明的是,如果要像運行其他程式一樣執行Python腳本,需要再python文件的第一行加上 #!/usr/bin/env python
, 這樣可以保證腳本文件可以再安裝了python的環境中運行。
有時候,還需要修改腳本的許可權才可以運行:$ chmod a+x demo.py
註釋
在Python中,井號(#)比較特殊:在代碼中,井號後面到行尾的內容都將被忽略,稱為註釋。
註釋讓程式更容易理解,註釋的基本原則就是言而有物,不要重覆去講通過代碼很容易獲得的信息,無用而重覆的註釋還不如沒有。