您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“python3.7函數(shù)基礎(chǔ)知識有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
一、函數(shù)
從開始接觸python就接觸了函數(shù)。 例如 input()函數(shù)用于獲取用戶鍵盤輸入、print()函數(shù)用于輸出結(jié)果、range()函數(shù)用于生成整數(shù)序列、len()函數(shù)用于獲取序列的長度。不僅如此python還為我們提供了自定義函數(shù)。即將有規(guī)律,可重復(fù)使用的代碼封裝成函數(shù),從而達(dá)到一次編寫多次調(diào)用的結(jié)果。由此可見我們可以簡單的認(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
上述代碼我們定義了一個函數(shù)實(shí)現(xiàn)0-100的求和。 而且得到了準(zhǔn)確的結(jié)果。 首先用def關(guān)鍵字用來定義一個函數(shù)。后面跟一個函數(shù)名。 函數(shù)名顧名思義就是函數(shù)的名字。 這個名字是我們自定義的同樣遵循命名規(guī)范。函數(shù)名后面的"()"表示參數(shù)列表。 具體會在下一個列子中講到。 括號后面的是函數(shù)體即我們的求和功能。 程序的最后一行sun()稱之為函數(shù)的調(diào)用。 定義了函數(shù)如果不調(diào)用就相當(dāng)于不執(zhí)行。簡而言之也就無法生成求和的功能。
同時我們思考另一個問題。 不是說函數(shù)是可以重復(fù)利用的嘛。 很明顯上述函數(shù)只能完成0-100的求和。 假如說要完成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
通過上述代碼我們發(fā)現(xiàn)我們在示例1 的基礎(chǔ)上在參數(shù)列表假如mag,這個成為參數(shù)。 關(guān)于參數(shù)后面還會具體講到。 一個參數(shù)可以有多個參數(shù)。 參數(shù)與參數(shù)之間用逗號隔開。 與此同時我們吧range里原先的100換成了我們的參數(shù)。 此時不難發(fā)現(xiàn)我們在調(diào)用函數(shù)的時候分別在括號里填上了1001和301。 這樣就實(shí)現(xiàn)了我們提出的求0-1000和0-300求個的功能。
那么我們有提出新的疑問。假如說我們不僅要實(shí)現(xiàn)求和。 然后還要將求出來的和參與別的運(yùn)算。此時我們又應(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
我們在示例2 的基礎(chǔ)上又添加了return a 這句話的意思是把計(jì)算結(jié)果返回到函數(shù)調(diào)用的地方。這樣我們就可以用個計(jì)算結(jié)果去做別的事了。
小結(jié):
函數(shù)名:其實(shí)就是一個符合 Python 語法的標(biāo)識符,但不建議讀者使用 a、b、c 這類簡單的標(biāo)識符作為函數(shù)名,函數(shù)名最好能夠體現(xiàn)出該函數(shù)的功能。
形參列表:即上面括號里的函數(shù)列表,設(shè)置該函數(shù)可以接收多少個參數(shù),多個參數(shù)之間用逗號( , )分隔。
[return [返回值] ]:整體作為函數(shù)的可選參參數(shù),用于設(shè)置該函數(shù)的返回值。也就是說,一個函數(shù),可以用返回值,也可以沒有返回值,是否需要根據(jù)實(shí)際情況而定
三、函數(shù)的調(diào)用
到目前為止對函數(shù)的調(diào)用已經(jīng)比較熟悉。 即 函數(shù)名(形參值),函數(shù)名即指的是要調(diào)用的函數(shù)的名稱;形參值指的是當(dāng)初創(chuàng)建函數(shù)時要求傳入的各個形參的值,需要注意的是,創(chuàng)建函數(shù)有多少個形參,那么調(diào)用時就需要傳入多少個值,且順序必須和創(chuàng)建函數(shù)時一致。即便該函數(shù)沒有參數(shù),函數(shù)名后的小括號也不能省略。
四、pass語句
如果想定義一個什么事也不做的空函數(shù),可以用pass語句.pass語句什么都不做,那有什么用?實(shí)際上pass可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,就可以先放一個pass,讓代碼能運(yùn)行起來。
def sun():
pass
五、為函數(shù)添加說明文檔
函數(shù)不僅僅是給自己用的。 在一個團(tuán)隊(duì)中很可能其他人也要用到。 這時如果他不知道函數(shù)的功能就沒法準(zhǔn)確的調(diào)用。或者時隔很久要做維護(hù)和修改或者新員工要接手項(xiàng)目。 如果沒寫注釋不僅效率低。而且有可能回成為吐槽的對象。 因此添加說明文檔必不可少。例如
"""
功能:求指定序列的和
mag 要生成的序列的最大值
"""
def sun(mag):
a = 0
# 通過循環(huán)求和并返回結(jié)果
for i in list(range(mag)):
a += i
return a
b = sun(1002)
print(b)
六、參數(shù)檢查
函數(shù)調(diào)用時如果參數(shù)的個數(shù)不對。python的解釋器會自動檢查出來
"""
功能:求指定序列的和
mag 要生成的序列的最大值
"""
def sun(mag):
a = 0
# 通過循環(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ù)的類型不對那么解釋器就無能為力了。
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的列表。而我們偏偏傳入了字符串這時就會報錯。此時內(nèi)置函數(shù)isinstance()就派上用場了
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]
那么可不可以一個參數(shù)滿足兩個或者以上類型呢?當(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ù)返回多個值
def my_list():
return 10, 20, [1, 3]
a = my_list()
print(a)
(10, 20, [1, 3])
由上述例子可知函數(shù)是可以一次性返回多個值的。但是這個返回值是tuple
“python3.7函數(shù)基礎(chǔ)知識有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。