




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
引入案例任務分析知識解析案例解析任務實訓實訓評價2.4.1內(nèi)置函數(shù)2.4.2標準庫函數(shù)2.4.3第三方庫函數(shù)任務2.4Python函數(shù)2.4.4自定義函數(shù)2.4.5匿名函數(shù)2.4.6函數(shù)的參數(shù)傳遞2.4.7變量作用域任務2.4Python函數(shù)引入案例通過上一個任務的學習,已經(jīng)能夠利用給定的條件計算出某個固定資產(chǎn)的每月折舊額,但是,如果想要使這個算法程序能作用到另外一個固定資產(chǎn),卻發(fā)現(xiàn)必須復制一下原來的程序,并且修改資產(chǎn)原值、折舊年限、殘值率等初始條件。那么有沒有更便捷的方法呢?回答是肯定的,其方法就是把原來的程序封裝成函數(shù)的形式,實現(xiàn)程序的重復利用,提高編程效率,同時還有利于將復雜問題分解簡單的小問題,減低了編程的難度。那么,如何將【任務2.3】中利用平均年限法計算折舊的程序封裝成自定義函數(shù),從而適用于其他固定資產(chǎn)折舊的計算呢?任務2.4Python函數(shù)任務分析函數(shù)是一段具有特定功能的、可重用的語句組,并通過函數(shù)名進行調用,并可以在需要的地方調用執(zhí)行,不需要在每個執(zhí)行的地方重復編寫這些語句。每次使用函數(shù)可以提供不同的參數(shù)作為輸入,以實現(xiàn)對不同數(shù)據(jù)的處理;函數(shù)執(zhí)行后,還可以返回相應的處理結果。Python中不僅提供許多內(nèi)置函數(shù),還提供自定義函數(shù)的功能。在調用函數(shù)的時候,要選擇合適的參數(shù)傳遞方式。任務2.4Python函數(shù)知識解析函數(shù)能夠完成特定功能,與黑盒類似,對函數(shù)的使用不需要了解函數(shù)內(nèi)部實現(xiàn)原理,只要了解函數(shù)的輸入輸出方式即可。使用函數(shù)可以提高代碼的重復利用率,達到一次編寫、多次調用的目的。在Python中,函數(shù)可以分為如下幾類:內(nèi)置函數(shù)、標準庫函數(shù)、第三方庫函數(shù)、自定義函數(shù)、匿名函數(shù)。2.4.1內(nèi)置函數(shù)
Python解釋器也是一個程序,它給用戶提供了一些常用功能,并給它們起了獨一無二的名字,這些常用功能就是內(nèi)置函數(shù)。Python解釋器啟動以后,內(nèi)置函數(shù)也生效了,可以直接拿來使用。前面已經(jīng)接觸過的input()、print()、range()函數(shù)等,這些都是Python的內(nèi)置函數(shù)。除了這些函數(shù),Python解釋器還提供了更多內(nèi)置函數(shù),下表列出了Python3.x中的所有內(nèi)置函數(shù),表中各個內(nèi)置函數(shù)的具體功能和用法,可通過查詢Python官方文檔進行查看。Python官方文檔查看網(wǎng)址如下:/zh-cn/3/library/functions.html任務2.4Python函數(shù)abs()delattr()hash()memoryview()set()all()dict()help()min()setattr()any()dir()hex()next()slice()Ascii()divmod()id()object()sorted()bin()enumerate()input()oct()staticmethod()bool()eval()int()open()str()breakpoint()exec()isinstance()ord()sum()bytearray()filter()issubclass()pow()super()bytes()float()iter()print()tuple()callable()format()len()property()type()chr()frozenset()list()range()vars()classmethod()getattr()locals()repr()zip()compile()globals()map()reversed()__import__()complex()hasattr()max()round()請注意:不要使用內(nèi)置函數(shù)的名字作為標識符使用(例如變量名、函數(shù)名、類名、模板名、對象名等),雖然這樣做Python解釋器不會報錯,但這會導致同名的內(nèi)置函數(shù)被覆蓋,從而無法使用。
Python3.x內(nèi)置函數(shù)
安裝Python的同時,也安裝一些標準庫函數(shù),如math、random等。通過import語句導入標準庫后,可以使用。比如,要導入math庫或使用其中的函數(shù),語法格式如下:importmath
#導入math庫frommathimport函數(shù)名#導入math庫中的函數(shù)2.4.2標準庫函數(shù)任務2.4Python函數(shù)2.4.3第三方庫函數(shù)
PyPI(PythonPackageIndex)是Python官方的第三方庫的倉庫,提供了許多功能豐富、強大的庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到PyPI。下載安裝后,只有通過import語句導入第三方庫,才可以使用庫中的函數(shù)。比如,后面將要學習的Pandas、Matplotlib、Pyecharts都屬于第三方庫。任務2.4Python函數(shù)庫名用途pip安裝指令NumPyN維數(shù)據(jù)表示和運算pipinstallnumpyMatplotlib二維數(shù)據(jù)可視化pipinstallmatplotlibPIL圖像處理pipinstallpillowScikit-Learn機器學習和數(shù)據(jù)挖掘pipinstallsklearnRequestsHTTP協(xié)議訪問及網(wǎng)絡爬蟲pipinstallrequestsJieba中文分詞pipinstalljiebaBeautifulSoupHTML和XML解析器pipinstallbeautifulsoup4WheelPython第三方庫文件打包工具pipinstallwheelPyInstaller打包Python源文件為可執(zhí)行文件pipinstallpyinstallerDjangoPython最流行的Web開發(fā)框架pipinstalldjangoFlask輕量級Web開發(fā)框架pipinstallflaskWeRoBot微信機器人開發(fā)框架pipinstallwerobotSymPy數(shù)學符號計算工具pipinstallsympyPandas高效數(shù)據(jù)分析和計算pipinstallpandasNetworkx復雜網(wǎng)絡和圖結構的建模和分析pipinstallnetworkxPyQt5基于Qt的專業(yè)級GUI開發(fā)框架pipinstallpyqt5PyOpenGL多平臺OpenGL開發(fā)接口pipinstallpyopengldocoptPython命令行解析pipinstalldocoptPyGame簡單小游戲開發(fā)框架pipinstallpygame2.4.4自定義函數(shù)任務2.4Python函數(shù)
函數(shù)名可以是任何有效的Python標識符;自定義函數(shù)中形參的個數(shù)可以是零個、一個或多個,當有多個形參時由逗號分隔,當沒有形參時也要保留圓括號。函數(shù)體是函數(shù)每次被調用時執(zhí)行的代碼,由一行或多行語句組成。當需要返回值時,使用保留字return和返回值列表;當不需要返回值時,函數(shù)可以沒有return語句,在函數(shù)體結束位置將控制權交給調用者。自定義函數(shù)語法格式如下:
def函數(shù)名(形參1,形參2,…,形參n):
函數(shù)體
return返回值列表當內(nèi)置函數(shù)不能實現(xiàn)我們想要的功能時,Python允許自定義函數(shù)并調用它。在Python中定義函數(shù)是以def關鍵詞開頭,其后面緊跟函數(shù)名和圓括號()。圓括號內(nèi)包放置在函數(shù)體中使用的參數(shù),后面以冒號(:)結束。函數(shù)體編寫另起一行,需要縮進4個空格。最后通常用return語句返回需要的結果。函數(shù)調用語法格式如下:函數(shù)名(實參1,實參2,…,實參n)
函數(shù)名要和被調函數(shù)名保持一致,實參的個數(shù)要根據(jù)被調用函數(shù)的形參個數(shù)來決定。在函數(shù)調用時,Python會將實參的值傳遞給被調函數(shù)的形參,然后執(zhí)行被調函數(shù)的函數(shù)體。任務2.4Python函數(shù)【做中學2.4.1】編寫自定義函數(shù)實現(xiàn)固定資產(chǎn)按年限平均法折舊,然后進行調用。#amount表示原價,srate表示預計殘值率,year表示使用年限defmon_dep(amount,srate,year):dep=round(amount*(1-srate)/year/12,2)returndep#返回月折舊額mon_dep(5000000,0.02,20)#調用自定義函數(shù)mon_dep20416.67請注意:mon_dep(5000000,0.02,20)調用自定義函數(shù)傳入的值的順序要與形式參數(shù)的順序一致。【做中學2.4.1】程序如下:2.4.5匿名函數(shù)創(chuàng)建匿名函數(shù)語法格式如下:lambda參數(shù)列表:表達式
lambda是匿名函數(shù)的標識,參數(shù)的個數(shù)不固定,后面跟著英文狀態(tài)下的冒號(:),最后一般跟著含有參數(shù)的表達式。任務2.4Python函數(shù)【做中學2.4.2】請使用匿名函數(shù)編寫兩數(shù)相加求和的程序。#方法1:先定義再調用summ=lambdaa,b:a+bprint(summ(3,4))#方法2:直接調用(lambdaa,b:a+b)(3,4)77請注意【做中學2.4.2】程序如下:匿名函數(shù)可以先定義然后調用,也可以直接調用。在直接調用匿名函數(shù)時候,(lambdaa,b:a+b)(3,4)中的第一括號里面是匿名函數(shù),第二個括號里面是實參。2.4.6函數(shù)的參數(shù)傳遞通常情況下,定義函數(shù)時都會選擇有參數(shù)的函數(shù)形式,函數(shù)參數(shù)的作用是實現(xiàn)數(shù)據(jù)的傳遞。在定義函數(shù)時,函數(shù)名后面圓括號中的參數(shù)稱為形式參數(shù)(簡稱形參);在調用函數(shù)時,函數(shù)名后面括號中的參數(shù)稱為實際參數(shù)(簡稱實參)。在調用函數(shù)時,會發(fā)生參數(shù)的傳遞,在Python中主要有如下4種:(1)位置參數(shù):調用函數(shù)時,實參默認按函數(shù)定義的形參位置順序傳遞(從左到右);(2)關鍵字參數(shù):使用形式參數(shù)的名字來確定輸入的參數(shù)值;(3)默認參數(shù):定義函數(shù)時對形參賦值,調用函數(shù)時候可傳遞也可不傳遞,注意無論是定義函數(shù)還是調用函數(shù)時候,所有位置參數(shù)必須出現(xiàn)在默認參數(shù)前面;(4)可變長度參數(shù):定義函數(shù)時,不確定調用函數(shù)傳入?yún)?shù)的個數(shù),傳入的參數(shù)個數(shù)可變。任務2.4Python函數(shù)調用函數(shù)時,實參默認按函數(shù)定義的形式參數(shù)位置順序傳遞,第一個實參賦值給第一個形參,第二個實參賦值給第二個形參,以此類推,傳遞的實參個數(shù)必須與形參一致。一、位置參數(shù)【做中學2.4.3】編寫自定義函數(shù)實現(xiàn)固定資產(chǎn)按年數(shù)總和法折舊,然后使用位置參數(shù)進行調用。請注意采用位置參數(shù)時,實參的數(shù)量必須與形參的數(shù)量一致,還有實參的位置必須與形參的位置保持一致。任務2.4Python函數(shù)
關鍵字參數(shù)是指在函數(shù)調用時使用形參的名字來確定輸入的參數(shù)值。通過該方式指定實參時,不再需要與形參的位置完全一致,只要將參數(shù)名書寫正確即可。這樣可以避免記參數(shù)位置的麻煩,使得函數(shù)的調用和參數(shù)的傳遞更加的靈活方便。在調用自定義函數(shù)時,其語法格式為:函數(shù)名(形參1=值1,形參2=值2,…,形參n=值n)其中形參的順序是任意的,沒有限制的。二、關鍵字參數(shù)【做中學2.4.4】使用關鍵字參數(shù)的形式調用【做中學2.4.3】中編寫的計算折舊函數(shù)year_dep1(amount,svalue,year)。list1=year_dep1(svalue=2000,amount=8000000,year=4)print(list1)list2=year_dep1(year=6,svalue=5000,amount=20000000)print(list2)[3199200.0,2399400.0,1599600.0,799800.0][5712857.14,4760714.29,3808571.43,2856428.57,1904285.71,952142.86]【做中學2.4.4】程序如下:任務2.4Python函數(shù)
默認參數(shù),有時也稱“默認參數(shù)值”,它是指在自定義函數(shù)時,可以對形參設定取默認值,若調用者在調用函數(shù)時,沒有提供與取默認值的形參相對應的實參,那么函數(shù)就將自動認為該形參取默認值。如果自定義函數(shù)中有取默認值的形參,那么這時自定義函數(shù)的語法如下:def函數(shù)名(參數(shù)1,參數(shù)2,…,參數(shù)n=默認值,…):
函數(shù)體
return返回值列表這時,位置參數(shù)、默認參數(shù)都在圓括號里面,構成函數(shù)定義中的形參。三、默認參數(shù)(1)如果自定義函數(shù)的形參表里有默認參數(shù),那么必須同時給出該參數(shù)的取值,沒有同時給出取值,則不可能成為默認參數(shù);(2)在定義函數(shù)時,默認參數(shù)要在位置參數(shù)的后面。請注意任務2.4Python函數(shù)【做中學2.4.5】使用關鍵字參數(shù)的形式編寫自定義函數(shù)實現(xiàn)固定資產(chǎn)按年限平均法折舊,然后進行調用。#amount表示原價,srate表示預計殘值率,year表示使用年限defmon_dep(amount,srate,year=20):dep=round(amount*(1-srate)/year/12,2)returndep#返回月折舊額#調用自定義函數(shù)mon_dep并打印輸出結果print(mon_dep(5000000,0.02))#調用自定義函數(shù)mon_dep并打印輸出結果print(mon_dep(5000000,0.02,10))20416.6740833.33第一次調用mon_dep函數(shù)時,沒有實參值傳遞給形參year,這時候形參year取默認值20;第二次調用mon_dep函數(shù)時,有實參值傳遞給形參year,這時候形參year取值為10。【做中學2.4.5】程序如下:任務2.4Python函數(shù)顧名思義,可變長度參數(shù)指傳入?yún)?shù)的個數(shù)是可變的,在Python中有可變長度參數(shù)*args、可變關鍵字參數(shù)**kwds兩種形式。*args表示接收任意多個實參將其放在一個元組中,而**kwds表示接收任意多個像關鍵字參數(shù)一樣顯式賦值的實際參數(shù),并將其放在一個字典中。四、可變長度參數(shù)【做中學2.4.6】自定義函數(shù)通過可變長度參數(shù)*args,求任意輸入長度的數(shù)據(jù)的和?!咀鲋袑W2.4.7】自定義函數(shù)通過可變關鍵字參數(shù)**kwds,根據(jù)實參傳入的收入和成本計算利潤。defsumm(*a):s=0foriina:s=s+iprint(s)#調用函數(shù)求1,2,3,4的和summ(1,2,3,4)10#定義函數(shù)計算利潤defgross_profit(**dict1):profit=dict1['income']-dict1['cost’]
returnprofit#調用函數(shù),income表示收入,cost表示成本gross_profit(income=20000,cost=15000)5000【做中學2.4.6】程序如下:【做中學2.4.7】程序如下:2.4.7變量作用域任務2.4Python函數(shù)變量的作用域是指程序代碼能夠訪問該變量的區(qū)域,如果超出該區(qū)域,在訪問時就會出現(xiàn)錯誤。在程序中,一般會根據(jù)變量的“有效范圍”將變量分為全局變量和局部變量。一、局部變量【做中學2.4.8】定義一個名稱為f_demo的函數(shù),在該函數(shù)內(nèi)部定義一個變量message(局部變量)并為其賦值,然后打印輸出該變量,最后在函數(shù)體外再次打印輸出message變量。deff_demo():message="我愛學習財務大數(shù)據(jù)分析"print("局部變量message=",message)#輸出局部變量的值f_demo()#調用函數(shù)#在函數(shù)外部輸出局部變量的值print("局部變量message=",message)局部變量是指在函數(shù)內(nèi)部定義并使用的變量,它只在函數(shù)內(nèi)部有效。所以如果在函數(shù)外部使用函數(shù)內(nèi)部定義的變量就會拋出NameError異常?!咀鲋袑W2.4.8】程序如下:任務2.4Python函數(shù)
與局部變量對應,全局變量是能夠作用于函數(shù)內(nèi)外的變量。全局變量主要有以下兩種情況:(1)如果一個變量在函數(shù)外定義,那么它不僅可以在函數(shù)外訪問,在函數(shù)內(nèi)也可以訪問。在函數(shù)體以外定義的變量是全局變量。二、全局變量【做中學2.4.9】定義一個全局變量message,然后再定義一個函數(shù),在函數(shù)內(nèi)輸出message的值。message="我愛學習財務大數(shù)據(jù)分析“#全局變量deff_demo():#在函數(shù)體內(nèi)輸出全局部變量的值
print("函數(shù)體內(nèi):message=",message)f_demo()#調用函數(shù)#在函數(shù)外部輸出全局部變量的值print("函數(shù)體外:message=",message)函數(shù)體內(nèi):message=我愛學習財務大數(shù)據(jù)分析函數(shù)體外:message=我愛學習財務大數(shù)據(jù)分析【做中學2.4.9】程序如下:任務2.4Python函數(shù)(2)在函數(shù)體內(nèi)定義變量并使用global關鍵詞修飾后,該變量變?yōu)槿肿兞?。在函?shù)體外也可以訪問的改變量,并在函數(shù)體內(nèi)還可以對其修改。二、全局變量【做中學2.4.10】定義兩個同名的全局變量和局部變量,并輸出它們的值。message='我要認真學習財務大數(shù)據(jù)分析'#全局變量#在函數(shù)體外輸出全局變量的值print('函數(shù)體外:message=',message)deff_demo():message='我正在認真學習這門課程'#局部變量
#在函數(shù)體內(nèi)輸出局部變量的值
print('函數(shù)體內(nèi):message=',message)f_demo()#調用函數(shù)#在函數(shù)體外輸出全局變量的值print('函數(shù)體外:message=',message)函數(shù)體外:message=我要認真學習財務大數(shù)據(jù)分函數(shù)體內(nèi):message=我正在認真學習這門課程函數(shù)體外:message=我要認真學習財務大數(shù)據(jù)分析【做中學2.4.10】程序如下:任務2.4Python函數(shù)在函數(shù)內(nèi)部定義的變量即使與全局變量重名,也不影響全局變量的值。如果想要在函數(shù)體內(nèi)改變?nèi)肿兞康闹?,需要在定義局部變量時使用global關鍵字修飾。將上面的代碼修改如下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京農(nóng)業(yè)大學《思想政治教育研究方法》2023-2024學年第二學期期末試卷
- 西安城市建設職業(yè)學院《動畫素描》2023-2024學年第二學期期末試卷
- 四川西南航空職業(yè)學院《設計基礎形態(tài)構成》2023-2024學年第二學期期末試卷
- 浙江音樂學院《園林法規(guī)》2023-2024學年第二學期期末試卷
- 甘肅民族師范學院《電力拖動自動控制系統(tǒng)》2023-2024學年第二學期期末試卷
- 黑龍江護理高等專科學?!吨嗅t(yī)經(jīng)典選讀一》2023-2024學年第二學期期末試卷
- 成都大學《資賦優(yōu)異教育概論》2023-2024學年第二學期期末試卷
- 揚州工業(yè)職業(yè)技術學院《食品生物技術實驗指導》2023-2024學年第二學期期末試卷
- 廣西城市職業(yè)大學《教師實踐》2023-2024學年第二學期期末試卷
- 湘中幼兒師范高等專科學?!镀胀ɑ瘜WI》2023-2024學年第二學期期末試卷
- 魚燈非遺文化知識介紹
- 兒童常用藥物及安全用藥課件
- 冬季安全生產(chǎn)知識講座
- 女生青春期知識講座(六年級)課件
- 幼兒園廚師廚房崗位管理培訓教學課件(一)
- 采購需求管理附件2采購需求-PR-PO操作說明
- 人教版《道德與法治》四年級下冊教材簡要分析課件
- 智慧水利建設頂層設計
- 數(shù)字示波器的工作原理及其應用
- 應聘登記表員工招聘登記表
- 肝內(nèi)膽管結石治療共識 課件
評論
0/150
提交評論