函式,這和數學中的函式有點關聯,但又不是完全等價。
不說的這麼官方,我就已自己的理解來表達^_^
在數學中,把乙個或多個值(輸入x)進行一定的計算或者對映,得到乙個值(輸出y),這個計算或者對映的過程就叫做函式,可以表達成:y=f(x)
,其中f就是乙個函式。
計算機中的函式和數學中的函式是很像的,把一定的輸入(x),傳遞到乙個函式中,進行某些操作,最後也可返回結果(y)。這裡說的是「也」,意味著,在計算機中,函式是可以沒有輸出(y)的。
我們把函式的輸入稱為「引數」,函式輸出稱為「返回值」
我們可以把一段重複使用的**定義成函式,要用的時候只需要呼叫即可,不需要每次都寫那麼大段的**,這是一種「懶惰的智慧型」。
在python中,有很多內建的函式,我們常用的print就是乙個函式,在使用時,括號裡的就是我們的引數,而這個函式是沒有返回值的。
對了╰( ̄▽ ̄)╭
,其實在python中沒有返回值的函式,都隱式地返回了乙個none
空值,這打臉真快(°ー°〃)
在這裡以print函式為例,講解函式的使用。
我們可以這樣呼叫print函式,而不用自己編寫print函式內部的大量**:
# 傳遞乙個字串'hello world'作為引數給print函式
print
('hello world!'
)# 傳遞多個引數,預設以空格分開輸出每個引數,其它型別的值自動轉換成字串型別
print
('1',2
,'3'
)
在呼叫函式的時候,只需寫出函式名,並跟一對括號,括號裡的填寫函式所需的引數即可。
現在再來看另乙個例子,前面曾介紹過使用冪運算子**
來計算乘方,現在我們可以用pow函式來替代這個運算子,下面是計算23:
>>
>2**
38>>
>
pow(2,
3)8>>
>
顯然,第乙個引數是底數,第二個引數是冪,函式返回值為計算的結果8,這個pow函式就很符合數學中的函式的特徵了,有輸入(引數),有輸出(返回值),我們還可以結合函式呼叫和運算子做更複雜的語句,像下面這樣,不用**
運算子計算 1 + 210:
>>
>1+
pow(2,
10)1025
>>
>
到目前為止,我們還沒學過怎麼獲取使用者的輸入,早就該提了,可是博主認為還是應該理解函式之後再接觸較好,所以只能拖到現在了,真是不好意思
好了,廢話不多說,現在來介紹主角:input函式,上**!
print
("下面計算a+b"
)a =
int(
input
("請輸入a:"))
b =int
(input
("請輸入b:"))
print
("a + b = "
, a+b)
由於需要互動,用文字不好表達,現在放上一張**自己感受感受!
input函式接受乙個字串引數,並輸出這個引數,等待使用者的輸入,按下回車後,輸入的這一行字串作為返回值返回出去。
上面的input函式呼叫是放在int()
中的,意味著我們用int()
將字串轉換成整數型別,這樣才可以進行整數運算,如果我們輸入的字串不是數字,那麼轉換就會失敗,強烈建議讀者親自嘗試一下!
其它有用的函式,這裡直接給出例子,具體看注釋:
>>
>
abs(-10
)# 取絕對值
10>>
>
round
(1.5
)# 四捨五入
2>>
>
sum([1
,2,3
,4,5
])# 將乙個列表或者類似的資料型別中的所有元素加起來
15>>
>
round函式用於四捨五入,有時候我們需要把數值向下取整,我們可以利用int()
轉換成整數時截斷小數來實現,也可以使用乙個叫floor的函式實現,這個函式不能直接使用,它存在於乙個模組中。
我們可以把功能類似的函式,比如用於數**算的函式,放到乙個模組中統一管理,python有很多優秀的內建模組,其中還真有乙個數學相關的模組,稱為math。
我們可以使用關鍵字import匯入模組,像下面這樣使用前面提到的floor函式對數值向下取整:
>>
>
import math # 匯入模組
>>
> math.floor(
1.9)
# 使用math模組中的floor函式
1>>
>
如果不想每次呼叫函式都在前加上模組名字的話,可以使用以下的形式:
>>
>
from math import ceil
>>
> ceil(
12.1
)# 向上取整
13>>
>
像上面那樣,使用from 模組 import 函式1,函式2,函式3
這種形式的import語句,可以直接使用函式的名字進行呼叫,但是要確保不要存在同名的函式,如果存在同名的函式,使用的是後匯入的函式。
還有一種形式的import語句,新增as
關鍵字可以為函式或者模組設定別名,比如:
# 把floor匯入使用fl作為別名,把ceil匯入並使用ce作為別名
from math import floor as fl,ceil as ce
print
('fl(12.9) is'
, fl(
12.9))
# 向下取整
print
('ce(14.1) is'
, ce(
14.1))
# 向上取整
# 匯入math模組,使用別名m
import math as m
print
('m.floor(12.9) is'
, m.floor(
12.9))
print
('m.ceil(14.1) is'
, m.ceil(
14.1))
print
('m.sqrt(4) is'
, m.sqrt(4)
)# 計算4的平方根
小提示:其實,我們還可以把函式賦值給乙個變數,使用變數來呼叫函式,比如func=math.floor
,然後就可以使用func(12.9)
來呼叫floor函式對12.9向下取整了
這一節我們學習了函式和模組的概念,並使用input函式獲取輸入,增加程式的互動,下一節將介紹如何自己建立函式,並在結束函式的學習後,做乙個像樣的小例子,敬請期待ヾ( ̄▽ ̄)bye~bye~
python 函式與模組
1,定義函式 def 函式名 參數列 函式語句 return 發回值 引數和返回值都可以省略 def hello print xyf 無敵 hello 2,引數傳遞 def add a,b return a b print add a b 順序依次傳遞 print add b a a b 按形參賦值...
簡明python教程三 函式
函式通過def關鍵字定義。def關鍵字後跟乙個函式的表識別符號名稱,然後跟一對圓括號。圓括號之中可以包括一些變數名,該行以冒號結尾。接下來是一塊語句,它們是函式體。def sayhello print hello world sayhello 函式形參是在函式定義的圓括號對內指定,用逗號分隔。def...
Python模組glob函式示例詳解教程
目錄 glob模組也是python標準庫中乙個重要的模組,主要用來查詢符合特定規則的目錄和檔案,並將搜尋的到的結果返回到乙個列表中。使用這個模組最主要的原因就是,該模組支援幾個特殊的正則萬用字元,用起來賊方便,這個將會在下方為大家進行詳細講解。使用glob模組能夠快速查詢我們想要的目錄和檔案,就是由...