python函數(shù)和函數(shù)傳參ppt_第1頁
python函數(shù)和函數(shù)傳參ppt_第2頁
python函數(shù)和函數(shù)傳參ppt_第3頁
python函數(shù)和函數(shù)傳參ppt_第4頁
python函數(shù)和函數(shù)傳參ppt_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、李凱函數(shù)的定義微實例微實例:生日歌生日歌。過生日時要為朋友唱生日歌,歌詞為: Happy birthday to you!Happy birthday to you! Happy birthday, dear Happy birthday to you!編寫程序為Mike和Lily輸出生日歌。最簡單的實現(xiàn)方法是重 復(fù)使用print()語句函數(shù)的基本使函數(shù)的基本使用用函數(shù)的定義 函數(shù)是一段具有特定功能的、可重用的語句組,用函數(shù)名來表示并通過函數(shù)名進行完成功能調(diào)用。 函數(shù)也可以看作是一段具有名字的子程序,可以在需要的地 方調(diào)用執(zhí)行,不需要在每個執(zhí)行地方重復(fù)編寫這些語句。 每次使用函數(shù)可以提供不同的

2、參數(shù)作為輸入,以實現(xiàn)對不同數(shù)據(jù)的處理;函數(shù)執(zhí)行后,還可以反饋相應(yīng)的處理結(jié)果。 函數(shù)是一種功能抽象函數(shù)的定義Python定義一個函數(shù)使用def保留字,語法形式如下: def ():注釋return 函數(shù)的定義1234print(Happy birthday to you!) print(Happy birthday to you!) print(Happy birthday, dear Mike!) print(Happy birthday to you!)最簡單的實現(xiàn)方法是重復(fù)使用print()語句,如下:函數(shù)的定義微實例5.1m5.1HappyBirthday.py12345678910de

3、f happy():print(Happy birthday to you!) def happyB(name):happy() happy()print(Happy birthday, dear !.format(name)happy() happyB(Mike) print() happyB(Lily)Happy birthday to you! Happy birthday to you!Happy birthday, dear Mike! Happy birthday to you!Happy birthday to you! Happy birthday to you! Happy

4、birthday, dear Lily! Happy birthday to you!函數(shù)調(diào)用的過程程序調(diào)用一個函數(shù)需要執(zhí)行以下四個步驟:(1)調(diào)用程序在調(diào)用處暫停執(zhí)行;(2)在調(diào)用時將實參復(fù)制給函數(shù)的形參;(3)執(zhí)行函數(shù)體語句;(4)函數(shù)調(diào)用結(jié)束給出返回值,程序回到調(diào)用前的暫 停處繼續(xù)執(zhí)行。函數(shù)調(diào)用的過程微實例5.1中happyB()的被調(diào)用過程函數(shù)調(diào)用的過函數(shù)調(diào)用的過程程函數(shù)調(diào)用的過函數(shù)調(diào)用的過程程lambda函數(shù)Python的有33個保留字,其中一個是lambda,該保留字用于定義 一種特殊的函數(shù)匿名函數(shù),又稱lambda函數(shù)。匿名函數(shù)并非沒有名字,而是將函數(shù)名作為函數(shù)結(jié)果返回,如下:

5、= lambda : lambda函數(shù)與正常函數(shù)一樣,等價于下面形式: def ():return lambda函數(shù)簡單說,lambda函數(shù)用于定義簡單的、能夠在一行內(nèi)表示的函數(shù),實例如下。f = lambda x, y : x + ytype(f)f(10, 12)22函數(shù)的參數(shù)傳函數(shù)的參數(shù)傳遞遞可選參數(shù)和可變數(shù)量參數(shù)在定義函數(shù)時,有些參數(shù)可以存在默認值。必須出現(xiàn)在函數(shù)參數(shù)列表的最右端,且任何一個默認值參數(shù)右邊不能有非默認值參數(shù)。def dup(str, times = 2):print(str*times)dup(knock)knockknockdup(knock,4)knockknock

6、knockknock可選參數(shù)和可變數(shù)量參數(shù)在函數(shù)定義時,可以設(shè)計可變數(shù)量參數(shù),通過參數(shù)前增加 星號(*)實現(xiàn)def vfunc(a, *b):print(type(b) for n in b:a += n return avfunc(1,2,3,4,5) 15參數(shù)的位置和名稱傳遞Python提供了按照形參名稱輸入實參的方式,調(diào)用如下: result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)由于調(diào)用函數(shù)時指定了參數(shù)名稱,所以參數(shù)之間的順序可 以任意調(diào)整。變量的返回值 return語句用來退出函數(shù)并將程序返回到函數(shù)被調(diào)用的位 置繼續(xù)執(zhí)行。 return語

7、句同時可以將0個、1個或多個函數(shù)運算完的結(jié)果 返回給函數(shù)被調(diào)用處的變量,例如。def func(a, b):return a*bs = func(knock, 2)print(s)knockknock變量的返回值函數(shù)可以沒有return,此時函數(shù)并不返回值,如微實例5.1的happy()函數(shù)。函數(shù)也可以用return返回多個值,多 個值以元組類型保存,例如。def func(a, b):return b,as = func(knock, 2)print(s, type(s)(2, knock) Python內(nèi)置函數(shù)(BIF)Python解釋器提供了68個內(nèi)置函數(shù),其中大部分會經(jīng)常用到abs()

8、id()round()compile()locals()all()input()set()dir()map()any()int()sorted()exec()memoryview()asci()len()str()enumerate()next()bin()list()tuple()filter()object()bool()max()type()format()property()chr()min()zip()frozenset()repr()complex()oct()getattr()setattr()dict()open()globals()slice()divmod()ord()by

9、tes()hasattr()staticmethod()eval()pow()delattr()help()sum()float()print()bytearray()isinstance()super()hash()range()callable()issubclass()vars()hex()reversed()classmethod()iter() import() 常用內(nèi)置函數(shù)內(nèi)置函數(shù)不需要導(dǎo)入任何模塊即可使用執(zhí)行下面的命令可以列出所有內(nèi)置函數(shù) dir(_builtins_)Python標(biāo)準庫input()print()str()range()函數(shù)函數(shù)功能簡要說明功能簡要說明abs(x

10、)返回數(shù)字x的絕對值或復(fù)數(shù)x的模all(iterable)如果對于可迭代對象中所有元素x都等價于True,也就是對于所有元素x都有bool(x)等于True,則返回True。對于空的可迭代對象也返回Trueany(iterable)只要可迭代對象iterable中存在元素x使得bool(x)為True,則返回True。對于空的可迭代對象,返回Falseascii(obj)把對象轉(zhuǎn)換為ASCII碼表示形式,必要的時候使用轉(zhuǎn)義字符來表示特定的字符bin(x)把整數(shù)x轉(zhuǎn)換為二進制串表示形式bool(x)返回與x等價的布爾值True或Falsebytes(x)生成字節(jié)串,或把指定對象x轉(zhuǎn)換為字節(jié)串表示

11、形式callable(obj)測試對象obj是否可調(diào)用。類和函數(shù)是可調(diào)用的,包含_call_()方法的類的對象也是可調(diào)用的compile()用于把Python代碼編譯成可被exec()或eval()函數(shù)執(zhí)行的代碼對象complex(real, imag)返回復(fù)數(shù)chr(x)返回Unicode編碼為x的字符常用內(nèi)置函數(shù)函數(shù)函數(shù)功能簡要說明功能簡要說明delattr(obj, name)刪除屬性,等價于del dir(obj)返回指定對象或模塊obj的成員列表,如果不帶參數(shù)則返回當(dāng)前作用域內(nèi)所有標(biāo)識符divmod(x, y)返回包含整商和余數(shù)的元組(x-x%y)/y, x%y)en

12、umerate(iterable, start) 返回包含元素形式為(0, iterable0), (1, iterable1), (2, iterable2), .的迭代器對象eval(s, globals, locals) 計算并返回字符串s中表達式的值exec(x)執(zhí)行代碼或代碼對象xexit()退出當(dāng)前解釋器環(huán)境filter(func, seq)返回filter對象,其中包含序列seq中使得單參數(shù)函數(shù)func返回值為True的那些元素,如果函數(shù)func為None則返回包含seq中等價于True的元素的filter對象float(x)把整數(shù)或字符串x轉(zhuǎn)換為浮點數(shù)并返回frozenset(

13、x)創(chuàng)建不可變的字典對象getattr(obj, name, default)獲取對象中指定屬性的值,等價于,如果不存在指定屬性則返回default的值,如果要訪問的屬性不存在并且沒有指定default則拋出異常續(xù)表1常用內(nèi)置函數(shù)函數(shù)函數(shù)功能簡要說明功能簡要說明globals()返回包含當(dāng)前作用域內(nèi)全局變量及其值的字典hasattr(obj, name)測試對象obj是否具有名為name的成員hash(x)返回對象x的哈希值,如果x不可哈希則拋出異常help(obj)返回對象obj的幫助信息hex(x)把整數(shù)x轉(zhuǎn)換為十六進制串id(obj)返回對象obj的標(biāo)識(內(nèi)存地址)inp

14、ut(提示)顯示提示,接收鍵盤輸入的內(nèi)容,返回字符串int(x, d)返回實數(shù)(float)、分數(shù)(Fraction)或高精度實數(shù)(Decimal)x的整數(shù)部分,或把d進制的字符串x轉(zhuǎn)換為十進制并返回,d默認為十進制isinstance(obj, class-or-type-or-tuple)測試對象obj是否屬于指定類型(如果有多個類型的話需要放到元組中)的實例iter(.)返回指定對象的可迭代對象len(obj)返回對象obj包含的元素個數(shù),適用于列表、元組、集合、字典、字符串以及range對象和其他可迭代對象續(xù)表2常用內(nèi)置函數(shù)函數(shù)函數(shù)功能簡要說明功能簡要說明list(x)、set(x)、

15、tuple(x)、dict(x)把對象x轉(zhuǎn)換為列表、集合、元組或字典并返回,或生成空列表、空集合、空元組、空字典locals()返回包含當(dāng)前作用域內(nèi)局部變量及其值的字典map(func, *iterables)返回包含若干函數(shù)值的map對象,函數(shù)func的參數(shù)分別來自于iterables指定的每個迭代對象,max(x)、 min(x)返回可迭代對象x中的最大值、最小值,要求x中的所有元素之間可比較大小,允許指定排序規(guī)則和x為空時返回的默認值next(iterator, default) 返回可迭代對象x中的下一個元素,允許指定迭代結(jié)束之后繼續(xù)迭代時返回的默認值oct(x)把整數(shù)x轉(zhuǎn)換為八進制串

16、open(name, mode)以指定模式mode打開文件name并返回文件對象ord(x)返回1個字符x的Unicode編碼pow(x, y, z=None)返回x的y次方,等價于x * y或(x * y) % z續(xù)表3常用內(nèi)置函數(shù)函數(shù)函數(shù)功能簡要說明功能簡要說明print(value, ., sep= , end=n, file = sys. stdout, flush=False)基本輸出函數(shù)quit()退出當(dāng)前解釋器環(huán)境range(start, end , step )返回range對象,其中包含左閉右開區(qū)間start,end)內(nèi)以step為步長的整數(shù)reduce(func, sequ

17、ence, initial)將雙參數(shù)的函數(shù)func以迭代的方式從左到右依次應(yīng)用至序列seq中每個元素,最終返回單個值作為結(jié)果。在Python 2.x中該函數(shù)為內(nèi)置函數(shù),在Python 3.x中需要從functools中導(dǎo)入reduce函數(shù)再使用repr(obj)返回對象obj的規(guī)范化字符串表示形式,對于大多數(shù)對象有eval(repr(obj)=objreversed(seq)返回seq(可以是列表、元組、字符串、range以及其他可迭代對象)中所有元素逆序后的迭代器對象續(xù)表4常用內(nèi)置函數(shù)函數(shù)函數(shù)功能簡要說明功能簡要說明round(x , 小數(shù)位數(shù))對x進行四舍五入,若不指定小數(shù)位數(shù),則返回整數(shù)

18、sorted(iterable, key=None, reverse=False)返回排序后的列表,其中iterable表示要排序的序列或迭代對象,key用來指定排序規(guī)則或依據(jù),reverse用來指定升序或降序。該函數(shù)不改變iterable內(nèi)任何元素的順序str(obj)把對象obj直接轉(zhuǎn)換為字符串sum(x, start=0)返回序列x中所有元素之和,要求序列x中所有元素必須為數(shù)字,允許指定起始值start,返回start+sum(x)type(obj)返回對象obj的類型zip(seq1 , seq2 .) 返回zip對象,其中元素為(seq1i, seq2i, .)形式的元組,最終結(jié)果中

19、包含的元素個數(shù)取決于所有參數(shù)序列或可迭代對象中最短的那個續(xù)表5常用內(nèi)置函數(shù)常用內(nèi)置函數(shù)dir()函數(shù)可以查看指定模塊中包含的所有成員或者指定對象類型所支持的操作。help()函數(shù)則返回指定模塊或函數(shù)的說明文檔。import timedir(time)help(time)常用內(nèi)置函數(shù)ord()和chr()是一對功能相反的函數(shù),ord()用來返回單個字符的序數(shù)或Unicode碼,chr()用來返回某序數(shù)對應(yīng)的字符str()則直接將其任意類型參數(shù)轉(zhuǎn)換為字符串。 ord(a)97 chr(65)A chr(ord(A)+1)B str(1)1 str(1234)1234 str(1,2,3)1, 2,

20、 3 str(1,2,3)(1, 2, 3) str(1,2,3)set(1, 2, 3)常用內(nèi)置函數(shù)max()、min()、sum()這三個內(nèi)置函數(shù)分別用于計算列表、元組或其他可迭代對象中所有元素最大值、最小值以及所有元素之和,sum()要求元素支持加法運算,max()和min()則要求序列或可迭代對象中的元素之間可比較大小。 import random a = random.randint(1,100) for i in range(10) #列表推導(dǎo)式 a72, 26, 80, 65, 34, 86, 19, 74, 52, 40 print(max(a), min(a), sum(a)

21、86 19 548如果需要計算該列表中的所有元素的平均值,可以直接這樣用: sum(a)*1.0/len(a) #Python 2.7.1254.8 sum(a)/len(a) #Python 常用內(nèi)置函數(shù)內(nèi)置函數(shù)max()和min()的key參數(shù)可以用來指定比較規(guī)則 x = 21, 1234, 9 max(x)9 max(x, key=len)1234 max(x, key=int)1234常用內(nèi)置函數(shù)內(nèi)置函數(shù)type()和isinstance()可以判斷數(shù)據(jù)類型。 type(3) #查看3的類型 type(3) in (list, tuple, dict) #判斷3是否為

22、list,tuple或dict類型的實例False isinstance(3, int) #判斷3是否為int類型的實例True isinstance(3j, (int, float, complex) #判斷3是否為int,float或complex類型True常用內(nèi)置函數(shù)range()是非常常用的內(nèi)置函數(shù),語法格式為range(start, end , step )。該函數(shù)返回具有惰性求值特點的range對象,其中包含左閉右開區(qū)間start,end)內(nèi)以step為步長的整數(shù)。參數(shù)start默認為0,step默認為1。 range(5) #start默認為0,step默認為1range(0,

23、 5) list(_)0, 1, 2, 3, 4 list(range(1, 10, 2) #指定起始值和步長1, 3, 5, 7, 9 list(range(9, 0, -2) #步長為負數(shù)時,start應(yīng)比end大9, 7, 5, 3, 1常用內(nèi)置函數(shù)sorted()對列表、元組、字典、集合或其他可迭代對象進行排序并返回新列表,reversed()對可迭代對象(生成器對象和具有惰性求值特性的zip、map、filter、enumerate等類似對象除外)進行翻轉(zhuǎn)(首尾交換)并返回可迭代的reversed對象。 x = aaaa, bc, d, b, ba sorted(x, key=lam

24、bda item: (len(item), item) #先按長度排序,長度一樣的正常排序b, d, ba, bc, aaaa reversed(x) #逆序,返回reversed對象 list(reversed(x) #reversed對象是可迭代的5, 1, 9, 3, 8, 7, 10, 6, 0, 4, 2常用內(nèi)置函數(shù)內(nèi)置函數(shù)map()把一個函數(shù)func依次映射到序列或迭代器對象的每個元素上,并返回一個可迭代的map對象作為結(jié)果,map對象中每個元素是原序列中元素經(jīng)過函數(shù)func處理后的結(jié)果。 list(map(str, range(5) #把列表中元素轉(zhuǎn)換為字符串0, 1, 2, 3

25、, 4 def add5(v): #單參數(shù)函數(shù)return v+5 list(map(add5, range(10) #把單參數(shù)函數(shù)映射到一個序列的所有元素5, 6, 7, 8, 9, 10, 11, 12, 13, 14 def add(x, y): #可以接收2個參數(shù)的函數(shù)return x+y list(map(add, range(5), range(5,10) #把雙參數(shù)函數(shù)映射到兩個序列上5, 7, 9, 11, 13常用內(nèi)置函數(shù)eval()函數(shù)是一個十分重要的函 數(shù),它能夠以Python表達式的方式解析并執(zhí)行字符串,將返回結(jié)果輸出exec()函數(shù)用來執(zhí)行指定的Python源代碼或者

26、由compile()編譯的代碼對象x = 1eval(x + 1)2eval(1.1 + 2.2)3.3eval(“_import_(os).startfile(rc:windowsnotepad.exe)exec(help(sum) #查看內(nèi)置函數(shù)查看內(nèi)置函數(shù)sum的幫助文檔的幫助文檔常用內(nèi)置函數(shù)enumerate()函數(shù)用來枚舉可迭代對象中的元素,返回可迭代的enumerate對象,其中每個元素都是包含索引和值的元組。 list(enumerate(abcd) #枚舉字符串中的元素(0, a), (1, b), (2, c), (3, d) list(enumerate(Python, Greate) #枚舉列表中的元素(0, Python), (1, Greate) list(enumerate(a:97,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論