函數(shù)的主要作用是結(jié)束重復(fù)編寫代碼,函數(shù)的編寫更容易理解測試代碼。
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、烏魯木齊ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的烏魯木齊網(wǎng)站制作公司
函數(shù)不單單只能夠重復(fù)代碼,也可以將函數(shù)外部的數(shù)據(jù)傳遞至函數(shù)內(nèi)部的代碼中。位置調(diào)用實參,關(guān)鍵字調(diào)用實參,形參默認(rèn)值。
有些時候我們需要默認(rèn)值,當(dāng)你不填寫的時候它會有個默認(rèn)值,返回值,內(nèi)置方法return可指定返回的值,在函數(shù)內(nèi)部代碼中,如果遇到return則會立即停止,并且返回你指定的值。在默認(rèn)沒有指定的情況下,返回的值時none,不指定返回值時,讓實參變成可選的在實際的使用中可能有些時候需要實參,但有時候不需要,調(diào)用函數(shù)時不可能一直更改定義好的函數(shù),這時需要我們提供可以選擇的實參。
python中eval函數(shù)作用如下:
1、計算字符串中有效的表達式,并返回結(jié)果。
2、將字符串轉(zhuǎn)成相應(yīng)的對象(如list、tuple、dict和string之間的轉(zhuǎn)換)。
3、將利用反引號轉(zhuǎn)換的字符串再反轉(zhuǎn)回對象。
函數(shù)作用域:eval()函數(shù)并不會創(chuàng)建一個新的作用域,并且它的作用域就是它所在的作用域,有時候需要將eval()函數(shù)的作用域設(shè)置為全局,當(dāng)然可以將eval()在全局作用域中使用,這個時候可以用window.eval()的方式實現(xiàn)。
參數(shù)情況:
(1)如果參數(shù)是一個表達式,eval() 函數(shù)將執(zhí)行表達式。
(2)如果參數(shù)是Javascript語句,eval()將執(zhí)行 Javascript 語句。
注意:如果執(zhí)行結(jié)果是一個值就返回,不是就返回undefined,如果參數(shù)不是一個字符串,則直接返回該參數(shù)。
python中函數(shù)的作用不包括增加代碼量。根據(jù)查詢相關(guān)資料信息,python中函數(shù)的作用有復(fù)用代碼、提高效率、減少代碼量等相關(guān)作用。
Python 函數(shù)定義以及參數(shù)傳遞
1.函數(shù)定義
#形如def func(args...):
doSomething123
以關(guān)鍵字def 開頭,后面是函數(shù)名和參數(shù)下面是函數(shù)處理過程。
舉例:
def add( a, b ):
return a+b12
參數(shù)可以設(shè)定默認(rèn)值,如:
def add( a, b=10 ): #注意:默認(rèn)值參數(shù)只會運算一次
return a+b12
默認(rèn)值參數(shù)只會運算一次是什么意思?
def func( a, b=[] ): #b的默認(rèn)值指向一個空的列表,每次不帶默認(rèn)值都會指向這塊內(nèi)存
b.append(a) return b
print(func(1))#向默認(rèn)的空列表里加入元素1 ,默認(rèn)列表里已經(jīng)是[1]print(func(2))#向默認(rèn)的列表里加入元素2,默認(rèn)列表里已經(jīng)是[1,2]print(func(3,[]))#向b指向的空列表里加入元素1 ,默認(rèn)列表里還是[1,2]print(func(4))#向默認(rèn)的列表里加入元素4,默認(rèn)列表里已經(jīng)是[1,2,4]'''
結(jié)果:
[1]
[1, 2]
[3]
[1, 2, 4]
'''12345678910111213141516
這下明白為什么默認(rèn)參數(shù)只計算一次了吧,函數(shù)參數(shù)不傳遞時默認(rèn)值總是指向固定的內(nèi)存空間,就是第一次計算的空間。
2.參數(shù)傳遞
def func(a, b):
print('a=%d, b=%d' % (a,b) )12
在使用函數(shù)時可以如下方式,結(jié)果都是相同的
func(10,20) #不使用參數(shù)名,需要按參數(shù)順序傳遞func(a=10,b=20) #使用參數(shù)名可以不按順序傳遞func(b=20,a=10)#結(jié)果:a=10, b=20a=10, b=20a=10, b=201234567
如果函數(shù)定義形式如下方式:
def func(*args): #這種定義會把傳遞的參數(shù)包成元組
print(args,type(args))
func(10,20)#結(jié)果:#(10, 20) class 'tuple'1234567
舉一個和上述過程相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
a = (10, 20)
func(*a) #在調(diào)用函數(shù)使用`*`則會把元組解包成單個變量按順序傳入函數(shù)#結(jié)果:a=10, b=20123456
總結(jié):*號在定義函數(shù)參數(shù)時,傳入函數(shù)的參數(shù)會轉(zhuǎn)換成元組,如果 *號在調(diào)用時則會把元組解包成單個元素。
另一種定義:
def func(**kw):#使用**定義參數(shù)會把傳入?yún)?shù)包裝成字典dict
print(kw, type(kw) )
func(a=10,b=20)#這種函數(shù)在使用時必須指定參數(shù)值,使用key=value這種形式#結(jié)果:{'b': 20, 'a': 10} class 'dict'12345
相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
d = {'a':10, 'b':20 }
func(**d) #在調(diào)用時使用**會把字典解包成變量傳入函數(shù)。12345
def func(*args, **kw):#這種形式的定義代表可以接受任意類型的參數(shù)
print(args,kw )12
總結(jié):**號在定義函數(shù)參數(shù)時,傳入函數(shù)的參數(shù)會轉(zhuǎn)換成字典,如果 **號在調(diào)用時則會把字典解包成單個元素。
lambda表達式
lambda表達式就是一種簡單的函數(shù)
形如 f = lambda 參數(shù)1,參數(shù)2: 返回的計算值
例如:
add = lambda x,y: x+y
print(add(1,2))'''
結(jié)果:3
'''12345
新聞名稱:python中函數(shù)作用 python定義函數(shù)最主要的作用
文章位置:http://chinadenli.net/article18/dodspdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站制作、品牌網(wǎng)站設(shè)計、網(wǎng)站導(dǎo)航、網(wǎng)站策劃、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)