您好,登錄后才能下訂單哦!
函數是指代碼片段,可以重復調用,比如我們前面文章接觸到的type()/len()等等都是函數,這些函數是python的內置函數,python底層封裝后用于實現某些功能。
?
在Python中,定義一個函數要使用def
語句,依次寫出函數名、括號、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用return語句返回;如果沒有return語句,默認返回None:
1 2 3 4 | def functionname( parameters ): ?? "函數說明" ?? function_suite ?? return [expression] |
例如:寫一個函數輸出’hello world’
1 2 | def cusom_print(): ????print("hello world") |
?
當在py文件中,代碼一行一行執行,如果遇到函數的定義,編譯器會自動跳過,執行函數之后的代碼,如果想調用函數直接調用即可。
注意:函數在調用之前必須先聲明。python中的內置函數如:print/type函數等等已經在python編譯器內部聲明并且定義好了,我們只管調用即可,不需要關心具體內部如何實現。示例代碼如下:
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() |
輸出結果:
1 2 3 | hello world hello world hello world |
代碼分析:代碼執行到第15行時,編譯器發現這是一個函數聲明,編譯器并不會執行,會自動跳到函數末尾第20行,編譯器發現20行是在調用custom_print()函數,會直接進入custom_print()函數執行函數內的代碼第16/17/18行直到函數結束,這就是整個運行過程。
?
函數可以通過外部傳遞參數,比如:print()函數,可以直接傳遞字符串并打印字符串;也可以不傳遞參數,比如上面的custom_print函數,根據自己的需求而定.
函數聲明的時候定義的參數叫做形參;外部調用函數傳遞的參數叫做實參;函數的參數有兩者類型:
常規而言,函數默認有幾個形參,在外部調用時就需要傳遞多少個實參,示例代碼如下:
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) |
輸出結果:
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 |
?
在函數參數中,除了常規參數還有缺省參數,即缺省參數有一個默認值,如果外部調用該函數沒有給缺省參數傳遞參數,該形參直接取默認參數值;如果外部調用時給缺省參數傳遞了參數,那么該形參的值應該等于外部傳遞的參數,帶有缺省參數的函數也被稱為缺省函數,示例代碼如下:
1 2 3 4 5 6 7 8 9 | def cusom_print4(x,y=2,z=3): # x=2,z=3 缺省參數 ????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) |
輸出結果:
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.缺省參數都有一個默認值,如果外部沒有給缺省參數傳遞參數,那么直接取默認值;否則等于外部傳遞的參數值
2.缺省參數必須寫在函數形參的末尾
1 2 3 | # 錯誤寫法 def cusom_print4(x,y=2,z): ????print("cusom_print4 : x={}".format(x)) |
?
?
除了上面兩者,在函數的參數中還有一種不定長參數,即:函數的形參長度/類型都不固定,可能聽著有點蒙,這個問題我們留到下一篇文章?python 函數不定長參數 *argc,**kargcs?講解,暫時不做過多解釋。
?
函數的返回值可有可無,根據自己的使用需求而定。如果函數沒有return返回值,默認會返回None,即空值。和 False 不同,它不表示 0,也不表示空字符串,而表示沒有值,也就是空值。
?
1.函數的聲明必須在調用之前,否則會報錯.
2.注意缺省參數的參數寫法
3.函數沒有使用return,默認返回None
1.pycharm配置開發模板/設置字體大小
2.python列表推導式
3.python字典推導式
4.python 函數不定長參數 *argc,**kargcs
?
轉載請注明:猿說Python???python函數聲明和調用
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。