python語法教程之def()函數(shù)定義及用法
什么是函數(shù)?
我們在編程的過程中往往會發(fā)現(xiàn),實(shí)現(xiàn)某一功能的代碼塊會被頻繁地使用。如果每次使用這段代碼都得復(fù)制粘貼,這會使得代碼冗長而又臃腫,增大了代碼的閱讀難度。為了方便我們實(shí)現(xiàn)對代碼塊的復(fù)用,人們提出了函數(shù)功能。
如何定義函數(shù)?
函數(shù)的定義以關(guān)鍵字def開頭,后面接函數(shù)名稱和圓括號。
括號中放入函數(shù)需要的參數(shù)。
通過冒號和縮進(jìn)控制函數(shù)內(nèi)容。
函數(shù)的結(jié)構(gòu)如下所示:
def 函數(shù)名(參數(shù)):
函數(shù)體
定義第一個函數(shù)
在學(xué)習(xí)一門語言時(shí),我們最先學(xué)會的是如何輸出Hello world。那么,我們的第一個函數(shù)也就從最簡單的輸出Hello world開始。
def hello(): print('Hello world!') hello()
輸出:
Hello world!
可以看到,我們調(diào)用了我們定義的hello函數(shù),函數(shù)執(zhí)行了其中的print語句。
什么是形參實(shí)參,什么是返回值?
這里我們定義一個可以計(jì)算兩個數(shù)之和的函數(shù)add1,可以先運(yùn)行一下看看。
def add1(num1, num2): result = num1 + num2 return result x1, x2 = 1, 2 y = add1(x1, x2) print(y)
輸出:
3
函數(shù)完美地計(jì)算出了1加2的值。
同剛才的Hello world函數(shù)相比,我在add函數(shù)中加入了num1、num2和return。其運(yùn)作原理如下:
在調(diào)用add函數(shù)時(shí),我們將x1,x2傳入add中,由num1和num2分別接收了來自x1和x2的值,將num1和num2的數(shù)值相加后傳給result,最后函數(shù)輸出result的值給y,我們打印出y的值,就是3。
那么這里面的num1、num2就是形參,x1、x2就是實(shí)參,return result就是函數(shù)的返回語句,其返回的就是result的值,所以result就是返回值。
由此可見,形參就是我們在函數(shù)定義過程中定義在括號內(nèi)的參數(shù)。實(shí)參就是我們輸入函數(shù)的參數(shù),返回值就是return后面的語句的計(jì)算值。
我比較喜歡通過數(shù)學(xué)中對函數(shù)的定義來理解編程語言中的函數(shù)。在數(shù)學(xué)中函數(shù)的定義式是y = f(x)那么這里x就是我們傳入的參數(shù),f就是函數(shù)體,用來對x進(jìn)行計(jì)算,計(jì)算結(jié)果y就是函數(shù)的返回值。
函數(shù)參數(shù)的一些額外用法
還是剛才的add1函數(shù),但是我們參數(shù)的賦值方式不一樣了:
def add1(num1, num2): result = num1 + num2 return result y = add1(num1=1, num2=2) print(y)
輸出:
3
我們也可以對函數(shù)的形參賦予初始值
def add2(num1=1, num2=1): result = num1 + num2 return result y = add2() print(y)
輸出:
2
在形參賦初值的情況下,我們又可以如下進(jìn)行傳參。
def add2(num1=1, num2=2): result = num1 + num2 return result y = add2(3) print(y)
輸出:
5
可見3按順序替換了add2函數(shù)的第一個形參,導(dǎo)致num1變?yōu)?,result變?yōu)?。
那如果我們想不按順序更改其中的參數(shù)呢?
def add2(num1=1, num2=2): result = num1 + num2 return result y = add2(num2=3) print(y)
輸出:
4
可以看到,3并沒有按順序替換add2函數(shù)的第一個參數(shù),而是傳給了num2,這樣result的值就是4了。
任意傳遞實(shí)參
當(dāng)我們傳入函數(shù)中的參數(shù)不固定怎么辦呢?
def save(*temp): return temp y = save('1', 2, 'abc', True) print(y)
輸出:
('1', 2, 'abc', True)
可以看到,如果形參加上一個星號,它就相當(dāng)于一個元組,我們傳入的參數(shù)將以元組的形式保存。
def student(**temp): return temp y = student(name='老王', age=20, high=180, is_student=True) print(y)
輸出:
{'name': '老王', 'age': 20, 'high': 180, 'is_student': True}
當(dāng)形參前帶有兩個星號時(shí),它就相當(dāng)于一個字典了。
附加
函數(shù)也可以寫在其他文件里用來調(diào)用。這里我們還是用一開始的add1函數(shù)。
from aboutadd import add1 y = add1(1, 2) print(y)
輸出:
3
通過圖片可以看到文件間的關(guān)系。
總結(jié)
到此這篇關(guān)于python語法教程之def()函數(shù)定義及用法的文章就介紹到這了,更多相關(guān)python def()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django REST Framework序列化外鍵獲取外鍵的值方法
今天小編就為大家分享一篇Django REST Framework序列化外鍵獲取外鍵的值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python寫入MySQL數(shù)據(jù)庫的三種方式詳解
Python 讀取數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫,這個需求在工作中是非常普遍的,主要涉及到 python 操作數(shù)據(jù)庫,讀寫更新等。本文總結(jié)了Python寫入MySQL數(shù)據(jù)庫的三種方式,需要的可以參考一下2022-06-06