溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python 函數(shù)聲明和調(diào)用(18)

發(fā)布時間:2020-06-23 04:19:39 來源:網(wǎng)絡(luò) 閱讀:257 作者:qq5d6f345f0205e 欄目:編程語言

函數(shù)是指代碼片段,可以重復(fù)調(diào)用,比如我們前面文章接觸到的type()/len()等等都是函數(shù),這些函數(shù)是python的內(nèi)置函數(shù),python底層封裝后用于實現(xiàn)某些功能。

python 函數(shù)聲明和調(diào)用(18)

?

一.函數(shù)的定義

在Python中,定義一個函數(shù)要使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回;如果沒有return語句,默認(rèn)返回None:

1

2

3

4

def functionname( parameters ):

?? "函數(shù)說明"

?? function_suite

?? return [expression]

例如:寫一個函數(shù)輸出’hello world’

1

2

def cusom_print():

????print("hello world")

?

二.函數(shù)的調(diào)用

當(dāng)在py文件中,代碼一行一行執(zhí)行,如果遇到函數(shù)的定義,編譯器會自動跳過,執(zhí)行函數(shù)之后的代碼,如果想調(diào)用函數(shù)直接調(diào)用即可。

注意:函數(shù)在調(diào)用之前必須先聲明。python中的內(nèi)置函數(shù)如:print/type函數(shù)等等已經(jīng)在python編譯器內(nèi)部聲明并且定義好了,我們只管調(diào)用即可,不需要關(guān)心具體內(nèi)部如何實現(xiàn)。示例代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個人博客地址): shuopython.com

@WeChat Official Account(微信公眾號):猿說python

@Github:www.github.com

@File:python_function.py

@Time:2019/10/3 10:48

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

?

def custom_print():

????print("hello world")

????print("hello world")

????print("hello world")

?

custom_print()

輸出結(jié)果:

1

2

3

hello world

hello world

hello world

代碼分析:代碼執(zhí)行到第15行時,編譯器發(fā)現(xiàn)這是一個函數(shù)聲明,編譯器并不會執(zhí)行,會自動跳到函數(shù)末尾第20行,編譯器發(fā)現(xiàn)20行是在調(diào)用custom_print()函數(shù),會直接進(jìn)入custom_print()函數(shù)執(zhí)行函數(shù)內(nèi)的代碼第16/17/18行直到函數(shù)結(jié)束,這就是整個運行過程。

?

三.函數(shù)傳參

函數(shù)可以通過外部傳遞參數(shù),比如:print()函數(shù),可以直接傳遞字符串并打印字符串;也可以不傳遞參數(shù),比如上面的custom_print函數(shù),根據(jù)自己的需求而定.

函數(shù)聲明的時候定義的參數(shù)叫做形參;外部調(diào)用函數(shù)傳遞的參數(shù)叫做實參;函數(shù)的參數(shù)有兩者類型:

1.常規(guī)參數(shù)

常規(guī)而言,函數(shù)默認(rèn)有幾個形參,在外部調(diào)用時就需要傳遞多少個實參,示例代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

def cusom_print1(x):

????print("cusom_print1 : x={}".format(x))

?

def cusom_print2(x,y):

????print("cusom_print2 : x={}".format(x))

????print("cusom_print2 : y={}".format(y))

?

def cusom_print3(x,y,z):

????print("cusom_print3 : x={}".format(x))

????print("cusom_print3 : y={}".format(y))

????print("cusom_print3 : z={}".format(z))

?

?

cusom_print1(1)

cusom_print2(1,2)

cusom_print3(1,2,3)

輸出結(jié)果:

1

2

3

4

5

6

cusom_print1 : x=1

cusom_print2 : x=1

cusom_print2 : y=2

cusom_print3 : x=1

cusom_print3 : y=2

cusom_print3 : z=3

?

2.缺省參數(shù)

在函數(shù)參數(shù)中,除了常規(guī)參數(shù)還有缺省參數(shù),即缺省參數(shù)有一個默認(rèn)值,如果外部調(diào)用該函數(shù)沒有給缺省參數(shù)傳遞參數(shù),該形參直接取默認(rèn)參數(shù)值;如果外部調(diào)用時給缺省參數(shù)傳遞了參數(shù),那么該形參的值應(yīng)該等于外部傳遞的參數(shù),帶有缺省參數(shù)的函數(shù)也被稱為缺省函數(shù),示例代碼如下:

1

2

3

4

5

6

7

8

9

def cusom_print4(x,y=2,z=3): # x=2,z=3 缺省參數(shù)

????print("cusom_print4 : x={}".format(x))

????print("cusom_print4 : y={}".format(y))

????print("cusom_print4 : z={}".format(z))

????print("***"*20)

?

cusom_print4(1)

cusom_print4(1,4)

cusom_print4(1,4,3)

輸出結(jié)果:

1

2

3

4

5

6

7

8

9

10

11

12

cusom_print4 : x=1

cusom_print4 : y=2

cusom_print4 : z=3

************************************************************

cusom_print4 : x=1

cusom_print4 : y=4

cusom_print4 : z=3

************************************************************

cusom_print4 : x=1

cusom_print4 : y=4

cusom_print4 : z=3

************************************************************

注意:

1.缺省參數(shù)都有一個默認(rèn)值,如果外部沒有給缺省參數(shù)傳遞參數(shù),那么直接取默認(rèn)值;否則等于外部傳遞的參數(shù)值

2.缺省參數(shù)必須寫在函數(shù)形參的末尾

1

2

3

# 錯誤寫法

def cusom_print4(x,y=2,z):

????print("cusom_print4 : x={}".format(x))

?

?

3.不定長參數(shù)

除了上面兩者,在函數(shù)的參數(shù)中還有一種不定長參數(shù),即:函數(shù)的形參長度/類型都不固定,可能聽著有點蒙,這個問題我們留到下一篇文章?python 函數(shù)不定長參數(shù) *argc,**kargcs?講解,暫時不做過多解釋。

python 函數(shù)聲明和調(diào)用(18)

?

四.函數(shù)返回值return

函數(shù)的返回值可有可無,根據(jù)自己的使用需求而定。如果函數(shù)沒有return返回值,默認(rèn)會返回None,即空值。和 False 不同,它不表示 0,也不表示空字符串,而表示沒有值,也就是空值。

?

五.重點總結(jié)

1.函數(shù)的聲明必須在調(diào)用之前,否則會報錯.

2.注意缺省參數(shù)的參數(shù)寫法

3.函數(shù)沒有使用return,默認(rèn)返回None

猜你喜歡:

1.pycharm配置開發(fā)模板/設(shè)置字體大小

2.python列表推導(dǎo)式

3.python字典推導(dǎo)式

4.python 函數(shù)不定長參數(shù) *argc,**kargcs

?

轉(zhuǎn)載請注明:猿說Python???python函數(shù)聲明和調(diào)用


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI