本篇內(nèi)容介紹了“python3.7函數(shù)基礎(chǔ)知識(shí)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到株洲網(wǎng)站設(shè)計(jì)與株洲網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋株洲地區(qū)。一、函數(shù)
從開(kāi)始接觸python就接觸了函數(shù)。 例如 input()函數(shù)用于獲取用戶鍵盤輸入、print()函數(shù)用于輸出結(jié)果、range()函數(shù)用于生成整數(shù)序列、len()函數(shù)用于獲取序列的長(zhǎng)度。不僅如此python還為我們提供了自定義函數(shù)。即將有規(guī)律,可重復(fù)使用的代碼封裝成函數(shù),從而達(dá)到一次編寫多次調(diào)用的結(jié)果。由此可見(jiàn)我們可以簡(jiǎn)單的認(rèn)為函數(shù)是可以實(shí)現(xiàn)特定功能的代碼塊。
二、函數(shù)的定義
假如我們要求0-100之間的和應(yīng)該怎么將其寫成函數(shù)呢?
def sun():
a = 0
for i in list(range(101)):
a += i
print(a)
sun()
--------------------
5050
上述代碼我們定義了一個(gè)函數(shù)實(shí)現(xiàn)0-100的求和。 而且得到了準(zhǔn)確的結(jié)果。 首先用def關(guān)鍵字用來(lái)定義一個(gè)函數(shù)。后面跟一個(gè)函數(shù)名。 函數(shù)名顧名思義就是函數(shù)的名字。 這個(gè)名字是我們自定義的同樣遵循命名規(guī)范。函數(shù)名后面的"()"表示參數(shù)列表。 具體會(huì)在下一個(gè)列子中講到。 括號(hào)后面的是函數(shù)體即我們的求和功能。 程序的最后一行sun()稱之為函數(shù)的調(diào)用。 定義了函數(shù)如果不調(diào)用就相當(dāng)于不執(zhí)行。簡(jiǎn)而言之也就無(wú)法生成求和的功能。
同時(shí)我們思考另一個(gè)問(wèn)題。 不是說(shuō)函數(shù)是可以重復(fù)利用的嘛。 很明顯上述函數(shù)只能完成0-100的求和。 假如說(shuō)要完成1-1000,或者0-300之間的求和,難道要繼續(xù)寫嘛。顯然不是。
def sun(mag):
a = 0
for i in list(range(mag)):
a += i
print(a)
sun(1002)
sun(301)
501501
-----------------
45150
通過(guò)上述代碼我們發(fā)現(xiàn)我們?cè)谑纠? 的基礎(chǔ)上在參數(shù)列表假如mag,這個(gè)成為參數(shù)。 關(guān)于參數(shù)后面還會(huì)具體講到。 一個(gè)參數(shù)可以有多個(gè)參數(shù)。 參數(shù)與參數(shù)之間用逗號(hào)隔開(kāi)。 與此同時(shí)我們吧range里原先的100換成了我們的參數(shù)。 此時(shí)不難發(fā)現(xiàn)我們?cè)谡{(diào)用函數(shù)的時(shí)候分別在括號(hào)里填上了1001和301。 這樣就實(shí)現(xiàn)了我們提出的求0-1000和0-300求個(gè)的功能。
那么我們有提出新的疑問(wèn)。假如說(shuō)我們不僅要實(shí)現(xiàn)求和。 然后還要將求出來(lái)的和參與別的運(yùn)算。此時(shí)我們又應(yīng)該怎么做呢?
def sun(mag):
a = 0
for i in list(range(mag)):
a += i
return a
b = sun(1002)
print(b)
c = b - 10000
print(c)
501501
------------------
491501
我們?cè)谑纠? 的基礎(chǔ)上又添加了return a 這句話的意思是把計(jì)算結(jié)果返回到函數(shù)調(diào)用的地方。這樣我們就可以用個(gè)計(jì)算結(jié)果去做別的事了。
小結(jié):
函數(shù)名:其實(shí)就是一個(gè)符合 Python 語(yǔ)法的標(biāo)識(shí)符,但不建議讀者使用 a、b、c 這類簡(jiǎn)單的標(biāo)識(shí)符作為函數(shù)名,函數(shù)名最好能夠體現(xiàn)出該函數(shù)的功能。
形參列表:即上面括號(hào)里的函數(shù)列表,設(shè)置該函數(shù)可以接收多少個(gè)參數(shù),多個(gè)參數(shù)之間用逗號(hào)( , )分隔。
[return [返回值] ]:整體作為函數(shù)的可選參參數(shù),用于設(shè)置該函數(shù)的返回值。也就是說(shuō),一個(gè)函數(shù),可以用返回值,也可以沒(méi)有返回值,是否需要根據(jù)實(shí)際情況而定
三、函數(shù)的調(diào)用
到目前為止對(duì)函數(shù)的調(diào)用已經(jīng)比較熟悉。 即 函數(shù)名(形參值),函數(shù)名即指的是要調(diào)用的函數(shù)的名稱;形參值指的是當(dāng)初創(chuàng)建函數(shù)時(shí)要求傳入的各個(gè)形參的值,需要注意的是,創(chuàng)建函數(shù)有多少個(gè)形參,那么調(diào)用時(shí)就需要傳入多少個(gè)值,且順序必須和創(chuàng)建函數(shù)時(shí)一致。即便該函數(shù)沒(méi)有參數(shù),函數(shù)名后的小括號(hào)也不能省略。
四、pass語(yǔ)句
如果想定義一個(gè)什么事也不做的空函數(shù),可以用pass語(yǔ)句.pass語(yǔ)句什么都不做,那有什么用?實(shí)際上pass可以用來(lái)作為占位符,比如現(xiàn)在還沒(méi)想好怎么寫函數(shù)的代碼,就可以先放一個(gè)pass,讓代碼能運(yùn)行起來(lái)。
def sun():
pass
五、為函數(shù)添加說(shuō)明文檔
函數(shù)不僅僅是給自己用的。 在一個(gè)團(tuán)隊(duì)中很可能其他人也要用到。 這時(shí)如果他不知道函數(shù)的功能就沒(méi)法準(zhǔn)確的調(diào)用?;蛘邥r(shí)隔很久要做維護(hù)和修改或者新員工要接手項(xiàng)目。 如果沒(méi)寫注釋不僅效率低。而且有可能回成為吐槽的對(duì)象。 因此添加說(shuō)明文檔必不可少。例如
"""
功能:求指定序列的和
mag 要生成的序列的大值
"""
def sun(mag):
a = 0
# 通過(guò)循環(huán)求和并返回結(jié)果
for i in list(range(mag)):
a += i
return a
b = sun(1002)
print(b)
六、參數(shù)檢查
函數(shù)調(diào)用時(shí)如果參數(shù)的個(gè)數(shù)不對(duì)。python的解釋器會(huì)自動(dòng)檢查出來(lái)
"""
功能:求指定序列的和
mag 要生成的序列的大值
"""
def sun(mag):
a = 0
# 通過(guò)循環(huán)求和并返回結(jié)果
for i in list(range(mag)):
a += i
return a
b = sun()
print(b)
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 12, in
b = sun()
TypeError: sun() missing 1 required positional argument: 'mag'
但是參數(shù)的類型不對(duì)那么解釋器就無(wú)能為力了。
def my_list(number):
print(list(range(number)))
my_list("10")
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in
my_list("10")鄭州正規(guī)人流醫(yī)院 www.zykdrl120.com
File "/Users/apple/Documents/重要文件/python3/python20.py", line 3, in my_list
print(list(range(number)))
TypeError: 'str' object cannot be interpreted as an integer
顯然我們要生成0-9的列表。而我們偏偏傳入了字符串這時(shí)就會(huì)報(bào)錯(cuò)。此時(shí)內(nèi)置函數(shù)isinstance()就派上用場(chǎng)了
def my_list(number):
if isinstance(number, int):
print(list(range(number)))
else:
print("只接受整型的數(shù)值")
my_list("10")
my_list(10)
只接受整型的數(shù)值
---------------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
那么可不可以一個(gè)參數(shù)滿足兩個(gè)或者以上類型呢?當(dāng)然可以
def my_list(number):
if isinstance(number, (int, float, str)):
print("我滿足了條件")
else:
print("我不滿足條件")
my_list("10")
my_list(10)
my_list((1, 2))
我滿足了條件
我滿足了條件
我不滿足條件
七、函數(shù)返回多個(gè)值
def my_list():
return 10, 20, [1, 3]
a = my_list()
print(a)
(10, 20, [1, 3])
由上述例子可知函數(shù)是可以一次性返回多個(gè)值的。但是這個(gè)返回值是tuple
“python3.7函數(shù)基礎(chǔ)知識(shí)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!