函数_月隐学python第9课
前面我們寫過九九乘法表,但如果我要七七乘法表或五五乘法表的話,你會看到三者代碼極其類似,只是循環(huán)變量不同,那么如何做到代碼重用,?不是簡單拷貝黏貼修改呢,其實可是使?函數(shù)完成這一功能
函數(shù)的優(yōu)點:
- 代碼可復(fù)用
- 代碼可維護性高
- 容易排錯
- 可讀性好
- 利于團隊開發(fā)
1.函數(shù)定義
函數(shù)就是完成特定功能的代碼塊,本質(zhì)上是對代碼的封裝。 語法格式:
函數(shù)名命名規(guī)則同變量名,要滿?標(biāo)識符命名規(guī)則:
- 不能和系統(tǒng)函數(shù)重名,否則系統(tǒng)函數(shù)無法使?
- 函數(shù)定義分兩部分:函數(shù)頭和函數(shù)體
- 函數(shù)體,就是實現(xiàn)功能的代碼段,以:開頭,必須縮進
- 函數(shù)名的命名風(fēng)格:一般建議用下劃線分隔的小寫單詞組成: say_hello
?
2 函數(shù)參數(shù)
2.1 實參和形參
?
- 形參:就是函數(shù)定義時小括號里的變量
- 實參:函數(shù)調(diào)用的時候,小括號里的表達(dá)式
- 函數(shù)可以沒有形參和實參
?
2.2 參數(shù)分類
?
- 位置參數(shù),要求實參順序必須和形參順序完全一致,由形參順序決定實參順序
- 關(guān)鍵字參數(shù),函數(shù)調(diào)?時,實參可以是鍵值對,鍵就是形參名字,這樣的調(diào)用,實參不必關(guān)?形參的順序。
- 默認(rèn)值,如果形參在定義的時候給定?個值,那么函數(shù)在調(diào)用時就可以不傳實參,可以簡化調(diào)?
默認(rèn)值參數(shù)必須放到最右邊
如果傳了實參,那么實參優(yōu)先,不會使?默認(rèn)值
默認(rèn)值只計算?次
默認(rèn)值必須是不可變對象
- 可變參數(shù),傳入的參數(shù)個數(shù)是可變的,可以是1個、 2個到任意個,還可以是0個。
?
3 函數(shù)調(diào)?用
?
- 函數(shù)調(diào)用必須在函數(shù)定義之后
- 函數(shù)調(diào)用必須能夠正確傳遞實參
4 返回值
可以通過return語句返回計算結(jié)果。語法: return 表達(dá)式
- return的作?一個是終?函數(shù)的執(zhí)行,所有執(zhí)行了return后,其后的語句不會被執(zhí)?
- 如果沒有return語句,則默認(rèn)返回的是None
- return還可以返回給調(diào)?者數(shù)值
- return可以返回?個值,如果要返回多個值,那么返回的是?個元組
?
5 文檔字符串
函數(shù)?檔字符串documentation string (docstring)是在函數(shù)開頭,?來解釋其接口的字符串。簡?而?言之:幫助?檔
- 包含函數(shù)的基礎(chǔ)信息
- 包含函數(shù)的功能簡介
- 包含每個形參的類型,使用等信息
?檔字符串書寫規(guī)則:
- 必須在函數(shù)的?行
- 使?三引號注解的多行字符串(''' ''') 或(""" """)
- 函數(shù)文檔的第?行?般概述函數(shù)的主要功能,第?行空,第三行詳細(xì)描述。
6.參數(shù)傳遞(**)
python的參數(shù)傳遞是簡單的值傳遞,當(dāng)然這里的值是指變量的引?(地址),不是變量的值。不存在值傳遞和引?傳遞的區(qū)分。簡?言之, python的參數(shù)傳遞可以稱之為對象引?傳遞,對象可以分為:
- 不可變對象: int、 float、 None、 complex、 bool、 tuple、 str,range
? ? ? ?在函數(shù)內(nèi)部不可能修改函數(shù)外部的變量
- 可變對象: dict、 list
? ? ? ?可以在函數(shù)內(nèi)部修改
7 空函數(shù)
借助于pass語句實現(xiàn),函數(shù)體不完成任何功能,只有?個pass語句
總結(jié)
以上是生活随笔為你收集整理的函数_月隐学python第9课的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字典与集合_月隐学python第8课
- 下一篇: 函数运用_月隐学python第10课