python內建了很多有用的函式,可以直接呼叫
要呼叫乙個函式,需要知道函式的名稱和引數,比如求絕對值的函式abs,只有乙個引數
也可以在互動式命令列通過help(abs)檢視abs函式的幫助資訊
help
(abs
)
help on built-in function abs in module builtins:
abs(x, /)
return the absolute value of the argument.
abs(-
10)
10
在python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號;然後,在縮排塊中編寫函式體,函式的返回值用return語句返回
# 定義乙個球兩數之和的函式:
defadd_two
(a,b)
:return a+b
add_two(10,
22)
32
請注意,函式體內部的語句在執行時,一旦執行到return時,函式就執行完畢,並 將結果返回。因此,函式內部通過條件判斷和迴圈可以實現非常複雜的邏輯
如果沒有return語句,函式執行完畢後也會返回結果,只是結果為none
return none可以簡寫為return
定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。
# 求x的平方
defpower
(x):
return x*x
power(
5)
25
# 求x的n次冪,設定n的預設值為2
defpower
(x,n=2)
:return x**n
power(5,
3)
125
設定預設引數時,有幾點要注意:
1.必選引數在前,預設引數在後,否則python的直譯器會報錯(思考一下為什麼預設引數不能放在必選引數前面)
2.如何設定預設引數
當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數
使用預設引數有什麼好處?最大的好處是能降低呼叫函式的難度
在python函式中,還可以定義可變引數。顧名思義,可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個
這裡以數學題為例,給定一組數字a,b,c…,計算a+b+c…
要定義出這個函式,我們必須確定輸入的引數。由於引數個數不確定,我們首先想到可以把a,b,c,…作為乙個list或tuple傳進來,這樣。函式可以定義如下:
def
calc
(numbers)
: amount =
0for num in numbers:
amount += num
return amount
numbers =
[100
,200,3
,4]calc(numbers)
307
如果利用可變引數,我們把函式的引數改為可變引數:
def
calc
(*numbers)
: amount =
0for num in numbers:
amount += num
return amount
calc(1,
2,3,
4,5,
7)
22
可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple。而關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict
def
get_kwatgs
(**kwargs)
:print
(kwargs)
get_kwatgs(a=
10,b=
"hello"
,c=[
"a",1,
"bcd"
])
在python中定義函式,可以用必選引數、預設引數、可變引數和關鍵字引數,這4種引數都可以一起使用,或者只用其中某些,但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數。
def
func
(a,b,c=0,
*args,
**kw)
:print
("a="
,a,"b="
,"c="
,c,"args="
,args,
"kw="
,kw)
func(10,
20,30,
"d",
"e",
"f",x=
99,y=
"hello"
)
a= 10 b= c= 30 args= ('d', 'e', 'f') kw=
python使用 lambda來建立匿名函式
lambda只是乙個表示式,函式體比def簡單很多
lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯
lambda函式擁有自己的名字空間,且不能訪問自有引數列表之外或全域性名字空間裡的引數
雖然lambda函式看起來只能寫一行,卻不等同於c或c++的內聯函式,後者的目的是呼叫小函式時不占用棧記憶體從而增加執行效率。
# 定義lambda函式
f =lambda x: x*x
[f(i)
for i in
range(10
)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
06python基礎高階之網路程式設計
一.ip位址 ip是可聯網裝置在網路中的邏輯位址,在同一網路中是唯一的 用來在網路中標記某個裝置 ifconfig ipconfig檢視網絡卡資訊 192.168.私有ip 127.0.0.1 環迴位址 本機ip位址 二.埠 port 1 作用 埠是傳輸資料的通道,好比教室的門,是資料傳輸必經之路 ...
Python基礎之 函式 (06)
1什麼是函式?函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。2定義函式 要想定義乙個由自己想要功能的函式,要遵守以下基本的規則 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式的第一行語句可以選擇性地使用文件字串 用...
Python建立與呼叫函式
今天我們來講python裡的建立與呼叫函式。先講建立函式,建立函式使用def關鍵字,就是define的縮寫。上 看看吧 def say info print info 這就是乙個名叫say的函式,我們來看看這個函式的結構 def 函式名 引數列表 函式體注意,def建立函式也需要縮排。現在我們說說引...