parameter 是函數(shù)定義的參數(shù)形式
我們提供的服務(wù)有:成都網(wǎng)站制作、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、贛州ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的贛州網(wǎng)站制作公司
argument 是函數(shù)調(diào)用時(shí)傳入的參數(shù)實(shí)體。
對(duì)于函數(shù)調(diào)用的傳參模式,一般有兩種:
此外,
也是關(guān)鍵字傳參
python的函數(shù)參數(shù)定義一般來(lái)說(shuō)有五種: 位置和關(guān)鍵字參數(shù)混合 , 僅位置參數(shù) , 僅關(guān)鍵字參數(shù) , 可變位置參數(shù) , 可變關(guān)鍵字參數(shù) 。其中僅位置參數(shù)的方式僅僅是一個(gè)概念,python語(yǔ)法中暫時(shí)沒有這樣的設(shè)計(jì)。
通常我們見到的函數(shù)是位置和關(guān)鍵字混合的方式。
既可以用關(guān)鍵字又可以用位置調(diào)用
或
這種方式的定義只能使用關(guān)鍵字傳參的模式
f(*some_list) 與 f(arg1, arg2, ...) (其中some_list = [arg1, arg2, ...])是等價(jià)的
網(wǎng)絡(luò)模塊request的request方法的設(shè)計(jì)
多數(shù)的可選參數(shù)被設(shè)計(jì)成可變關(guān)鍵字參數(shù)
有多種方法能夠?yàn)楹瘮?shù)定義輸出:
非常晦澀
如果使用可變對(duì)象作為函數(shù)的默認(rèn)參數(shù),會(huì)導(dǎo)致默認(rèn)參數(shù)在所有的函數(shù)調(diào)用中被共享。
例子1:
addItem方法的data設(shè)計(jì)了一個(gè)默認(rèn)參數(shù),使用不當(dāng)會(huì)造成默認(rèn)參數(shù)被共享。
python里面,函數(shù)的默認(rèn)參數(shù)被存在__default__屬性中,這是一個(gè)元組類型
例子2:
在例子1中,默認(rèn)參數(shù)是一個(gè)列表,它是mutable的數(shù)據(jù)類型,當(dāng)它寫進(jìn) __defauts__屬性中時(shí),函數(shù)addItem的操作并不會(huì)改變它的id,相當(dāng)于 __defauts__只是保存了data的引用,對(duì)于它的內(nèi)存數(shù)據(jù)并不關(guān)心,每次調(diào)用addItem,都可以修改 addItem.__defauts__中的數(shù)據(jù),它是一個(gè)共享數(shù)據(jù)。
如果默認(rèn)參數(shù)是一個(gè)imutable類型,情況將會(huì)不一樣,你無(wú)法改變默認(rèn)參數(shù)第一次存入的值。
例子1中,連續(xù)調(diào)用addItem('world') 的結(jié)果會(huì)是
而不是期望的
python內(nèi)置函數(shù)是什么?一起來(lái)看下吧:
python內(nèi)置函數(shù)有:
abs:求數(shù)值的絕對(duì)值
abs(-2) 2
pmod:返回兩個(gè)數(shù)值的商和余數(shù)
pmod(5,2) (2,1) pmod(5.5,2) (2.0,1.5)
bool:根據(jù)傳入的參數(shù)的邏輯值創(chuàng)建一個(gè)布爾值
bool()?#未傳入?yún)?shù) False bool(0)?#數(shù)值0、空序列等值為False False bool(1) True
all:判斷可迭代對(duì)象的每個(gè)元素是否都為True值
all([1,2])?#列表中每個(gè)元素邏輯值均為True,返回True True ?all(())?#空元組 True ?all({})?#空字典 True
help:返回對(duì)象的幫助信息
help(str)? Help?on?class?str?in?module?builtins: class?str(object) |??str(object='')?-?str |??str(bytes_or_buffer[,?encoding[,?errors]])?-?str |?? |??Create?a?new?string?object?from?the?given?object.?If?encoding?or |??errors?is?specified,?then?the?object?must?expose?a?data?buffer |??that?will?be?decoded?using?the?given?encoding?and?error?handler. |??Otherwise,?returns?the?result?of?object.__str__()?(if?defined) |??or?repr(object). |??encoding?defaults?to?sys.getdefaultencoding(). |??errors?defaults?to?'strict'. |?? |??Methods?defined?here: |?? |??__add__(self,?value,?/) ??????????Return?self+value.
_import_:動(dòng)態(tài)導(dǎo)入模塊
index?=?__import__('index') index.sayHello()
locals:返回當(dāng)前作用域內(nèi)的局部變量和其值組成的字典
def?f(): ????print('before?define?a?') ????print(locals())?#作用域內(nèi)無(wú)變量 ????a?=?1 ????print('after?define?a') ????print(locals())?#作用域內(nèi)有一個(gè)a變量,值為1 ?f?f() before?define?a? {}? after?define?a {'a':?1}
input:讀取用戶輸入值
s?=?input('please?input?your?name:') please?input?your?name:Ain ?s 'Ain'
open:使用指定的模式和編碼打開文件,返回文件讀寫對(duì)象
#?t為文本讀寫,b為二進(jìn)制讀寫 ?a?=?open('test.txt','rt') ?a.read() 'some?text' ?a.close()
eval:執(zhí)行動(dòng)態(tài)表達(dá)式求值
eval('1+2+3+4') 10
除了上述舉例的函數(shù)之外,內(nèi)置函數(shù)按分類還可分為:
1、數(shù)學(xué)運(yùn)算(7個(gè))
2、類型轉(zhuǎn)換(24個(gè))
3、序列操作(8個(gè))
4、對(duì)象操作(7個(gè))
5、反射操作(8個(gè))
6、變量操作(2個(gè))
7、交互操作(2個(gè))
8、文件操作(1個(gè))
9、編譯操作(4個(gè))
10、裝飾器(3個(gè))
1、print()函數(shù):打印字符串;
2、raw_input()函數(shù):從用戶鍵盤捕獲字符;
3、len()函數(shù):計(jì)算字符長(zhǎng)度;
4、format()函數(shù):實(shí)現(xiàn)格式化輸出;
5、type()函數(shù):查詢對(duì)象的類型;
6、int()函數(shù)、float()函數(shù)、str()函數(shù)等:類型的轉(zhuǎn)化函數(shù);
7、id()函數(shù):獲取對(duì)象的內(nèi)存地址;
8、help()函數(shù):Python的幫助函數(shù);
9、s.islower()函數(shù):判斷字符小寫;
10、s.sppace()函數(shù):判斷是否為空格;
11、str.replace()函數(shù):替換字符;
12、import()函數(shù):引進(jìn)庫(kù);
13、math.sin()函數(shù):sin()函數(shù);
14、math.pow()函數(shù):計(jì)算次方函數(shù);
15、os.getcwd()函數(shù):獲取當(dāng)前工作目錄;
16、listdir()函數(shù):顯示當(dāng)前目錄下的文件;
17、time.sleep()函數(shù):停止一段時(shí)間;
18、random.randint()函數(shù):產(chǎn)生隨機(jī)數(shù);
19、range()函數(shù):返回一個(gè)列表,打印從1到100;
20、file.read()函數(shù):讀取文件返回字符串;
21、file.readlines()函數(shù):讀取文件返回列表;
22、file.readline()函數(shù):讀取一行文件并返回字符串;
23、split()函數(shù):用什么來(lái)間隔字符串;
24、isalnum()函數(shù):判斷是否為有效數(shù)字或字符;
25、isalpha()函數(shù):判斷是否全為字符;
26、isdigit()函數(shù):判斷是否全為數(shù)字;
27、 lower()函數(shù):將數(shù)據(jù)改成小寫;
28、upper()函數(shù):將數(shù)據(jù)改成大寫;
29、startswith(s)函數(shù):判斷字符串是否以s開始的;
30、endwith(s)函數(shù):判斷字符串是否以s結(jié)尾的;
31、file.write()函數(shù):寫入函數(shù);
32、file.writeline()函數(shù):寫入文件;
33、abs()函數(shù):得到某數(shù)的絕對(duì)值;
34、file.sort()函數(shù):對(duì)書數(shù)據(jù)排序;
35、tuple()函數(shù):創(chuàng)建一個(gè)元組;
36、find()函數(shù):查找 返回的是索引;
37、dict()函數(shù):創(chuàng)建字典;
38、clear()函數(shù):清楚字典中的所有項(xiàng);
39、copy()函數(shù):復(fù)制一個(gè)字典,會(huì)修改所有的字典;
40、 get()函數(shù):查詢字典中的元素。
…………
Python內(nèi)置函數(shù)有很多,為大家推薦5個(gè)神仙級(jí)的內(nèi)置函數(shù):
(1)Lambda函數(shù)
用于創(chuàng)建匿名函數(shù),即沒有名稱的函數(shù)。它只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)函數(shù)來(lái)執(zhí)行單個(gè)操作并且可以在一行中編寫時(shí),就可以用到匿名函數(shù)了。
Lamdba的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
利用Lamdba函數(shù),往往可以將代碼簡(jiǎn)化許多。
(2)Map函數(shù)
會(huì)將一個(gè)函數(shù)映射到一個(gè)輸入列表的所有元素上,比如我們先創(chuàng)建了一個(gè)函數(shù)來(lái)返回一個(gè)大寫的輸入單詞,然后將此函數(shù)應(yīng)有到列表colors中的所有元素。
我們還可以使用匿名函數(shù)lamdba來(lái)配合map函數(shù),這樣可以更加精簡(jiǎn)。
(3)Reduce函數(shù)
當(dāng)需要對(duì)一個(gè)列表進(jìn)行一些計(jì)算并返回結(jié)果時(shí),reduce()是個(gè)非常有用的函數(shù)。舉個(gè)例子,當(dāng)需要計(jì)算一個(gè)整數(shù)列表所有元素的乘積時(shí),即可使用reduce函數(shù)實(shí)現(xiàn)。
它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個(gè)參數(shù),而map接收一個(gè)參數(shù)。
(4)enumerate函數(shù)
用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。
它的兩個(gè)參數(shù),一個(gè)是序列、迭代器或其他支持迭代對(duì)象;另一個(gè)是下標(biāo)起始位置,默認(rèn)情況從0開始,也可以自定義計(jì)數(shù)器的起始編號(hào)。
(5)Zip函數(shù)
用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表
當(dāng)我們使用zip()函數(shù)時(shí),如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同。
分享題目:python函數(shù)_ python函數(shù)和方法區(qū)別
文章地址:http://muchs.cn/article38/doedhsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、微信公眾號(hào)、品牌網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、標(biāo)簽優(yōu)化、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)