python內建了很多函式可以直接用於呼叫
abs可以輸出絕對值
a=
abs(
-100.3
)print
(a)100.3
max可以接收數個引數並返回其中最大值
t1=(1
,54,64
,5,64
,56)print
(max
(t1)
)print
(min
(t1))64
1
內建函式可以轉換資料型別
print
(int
(3.4))
print
(float
('11'))
311.0
在python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。
def
fun(a,b)
:if a>0:
a=a+
1else
: a=a-
1if b<0:
b=b-
1else
: b=b*
2return
(a,b)
print
(fun(3,
-2))
(4,-
3)
也可以定義乙個空函式,該函式什麼功能都不會實現,但是pass可以用來作為佔位符,比如現在還沒想好怎麼寫函式的**,就可以先放乙個pass,讓**能執行起來。
def
fun():
pass
a=17
if a>=14:
pass
可以利用返回乙個tuple來實現返回多個引數
在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。最簡單的例子就是階乘。
利用fact()可以實現階乘,其內部具體運算效果如下
===> fact(5)
===> 5 * fact(4)
===> 5 * (4 * fact(3))
===> 5 * (4 * (3 * fact(2)))
===> 5 * (4 * (3 * (2 * fact(1))))
===> 5 * (4 * (3 * (2 * 1)))
===> 5 * (4 * (3 * 2))
===> 5 * (4 * 6)
===> 5 * 24
===> 120
遞迴函式的優點是定義簡單,邏輯清晰。理論上,所有的遞迴函式都可以寫成迴圈的方式,但迴圈的邏輯不如遞迴清晰。
使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。解決遞迴呼叫棧溢位的方法是通過尾遞迴優化,事實上尾遞迴和迴圈的效果是一樣的,所以,把迴圈看成是一種特殊的尾遞迴函式也是可以的。
尾遞迴是指,在函式返回的時候,呼叫自身本身,並且,return語句不能包含表示式。這樣,編譯器或者直譯器就可以把尾遞迴做優化,使遞迴本身無論呼叫多少次,都只占用乙個棧幀,不會出現棧溢位的情況。
上面的fact(n)函式由於return n * fact(n - 1)引入了乘法表示式,所以就不是尾遞迴了。
以上就是我學習函式的內容,我知道自己所了解到的僅僅是一小部分,希望通過後面學習能了解到更多相關知識。
Python3學習筆記09 匿名函式lamdba
關鍵字lambda表示匿名函式,冒號前面,面的x表示函式引數。匿名函式有個限制,就是只能由乙個表示式,不用寫return,返回值就是該表示式的結果。匿名函式有個好處,因為函式沒有名字,不必擔心函式名稱衝突。此外,匿名函式也是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式 f l...
Python學習5 函式
廖雪峰的部落格 內建函式 使用 help 可以檢視函式 的幫助資訊 python內建函式 定義函式 在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號,最後,在縮排塊中編寫函式體,函式的返回值用return語句返回。如下面所示 def my abs x if x...
Python學習筆記(5) 函式
encoding gbk 定義函式 def greet user username print hello,username.title greet user jim 定義具有返回值的函式 def get formatted name first name,last name full name f...