版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python科學(xué)計(jì)算及應(yīng)用
Python函數(shù)計(jì)算函數(shù)的參數(shù)5.2函數(shù)嵌套與遞歸5.3函數(shù)的定義和調(diào)用5.1
Python函數(shù)計(jì)算函數(shù)的參數(shù)5.5函數(shù)嵌套與遞歸5.4函數(shù)定義的格式:5.1函數(shù)的定義和調(diào)用def函數(shù)名():代碼例5.1
定義一個(gè)函數(shù),能夠完成打印個(gè)人信息的功能。defprintInfo():name='zhangsan'qq=88888888tel='159xxxxxxx1'address='湖北武漢市xxxx'print('==================================')print('姓名:%s'%name)print('QQ:%d'%(qq))print('手機(jī)號(hào):%s'%tel)print('公司地址:%s'%address)print('==================================')printInfo()#調(diào)用函數(shù)5.2.1形參與實(shí)參5.2函數(shù)的參數(shù)defadd2num(a,b):c=a+breturncnum1=int(input('請(qǐng)輸入第1個(gè)數(shù):'))num2=int(input('請(qǐng)輸入第2個(gè)數(shù):'))print('sum=',add2num(num1,num2))定義時(shí)函數(shù)時(shí)小括號(hào)中的參數(shù),用來接收參數(shù)用的,稱為“形參”,調(diào)用時(shí)小括號(hào)中的參數(shù),用來傳遞給函數(shù)用的,稱為“實(shí)參”defdivid(a,b):shang=a//byushu=a%breturnshang,yushuprint(divid(11,3))#顯示(3,2)例5.2輸入一個(gè)字符串,自定義str_len()函數(shù),求字符串的長度。defstr_len(str):#自定義str_len()函數(shù)
length=0forcinstr:length=length+1returnlength#調(diào)用自定義的str_len()函數(shù)len=str_len("http://***python***/")print(len)#再次調(diào)用str_len()函數(shù)len=str_len("Ilovepython!")print(len)5.2函數(shù)的參數(shù)例5.3編寫一個(gè)函數(shù),判斷一個(gè)數(shù)是否為素?cái)?shù),調(diào)用該函數(shù)輸出100以內(nèi)的素?cái)?shù)。defprime(a):b=int(a**0.5)+1#平方根加1foriinrange(2,b+1):ifa%i==0:returnFalsebreakifi==b:returnTrueresult=[2]forainrange(2,100):ifprime(a):result.append(a)print(result)5.2函數(shù)的參數(shù)5.2函數(shù)的參數(shù)5.2.2函數(shù)參數(shù)類型位置參數(shù)位置參數(shù)就是函數(shù)調(diào)用時(shí)傳入的實(shí)參要與函數(shù)定義時(shí)的形參位置(先后順序)一一對(duì)應(yīng),一般適用于參數(shù)較少,函數(shù)在調(diào)用時(shí)易于知道函數(shù)中參數(shù)的位置及意義defadd3(x,y,z):#x,y,z是必選參數(shù)result=x*y+zreturnresultprint(add3(1,2,3))print(add3(3,1,2))關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)是指在函數(shù)調(diào)用時(shí)使用鍵值對(duì)的方式來進(jìn)行制定參數(shù)的值,當(dāng)函數(shù)中的參數(shù)較多,且在每次調(diào)用時(shí),參數(shù)的順序較多,不方便記憶,此時(shí)建議使用關(guān)鍵字參數(shù)的方式進(jìn)行傳參。5.2函數(shù)的參數(shù)defadd3(x,y,z):#x,y,z是必選參數(shù)
result=x+y+zreturnresultprint(add3(x=1,y=2,z=3))#等價(jià)add3(1,2,3)print(add3(z=3,y=2,x=1))#等價(jià)add3(1,2,3)默認(rèn)參數(shù)某些參數(shù)的值不變,此時(shí)為了方便,不用每次對(duì)這些值進(jìn)行傳值,可以默認(rèn)為固定的值,有且當(dāng)需要更改時(shí)才進(jìn)行傳值,這些固定的值即為默認(rèn)參數(shù)。defadd3(x,y=2,z=3):#x是必選參數(shù),y,z是可選參數(shù)
result=x+y+zreturnresultprint(add3(1)#等價(jià)add3(1,2,3)print(add3(1,4))#等價(jià)add3(1,4,3)print(add3(1,4,6))5.2函數(shù)的參數(shù)5.2函數(shù)的參數(shù)該種模式是參考了位置參數(shù)和關(guān)鍵字參數(shù)而進(jìn)一步得到的,通過元組來存放事先未知的類似位置參數(shù)的參數(shù),通過字典來存放事先未知的鍵值對(duì)(關(guān)鍵字參數(shù))。可變長度參數(shù)defadd(*p):#p必須是元組result=0foriinp:result=result+ireturnresultprint(add(1,2,3))#7print(add(1,2,3,4))#10print(add(1,2,3,4,6))#16
defadd(**p):#p必須是字典,形如key=value的參數(shù)result=0foriinp.values():result=result+ireturnresultprint(add(a=1,b=2,c=3,d=4))#10 print(add(x=1,y=2,z=3,m=4,n=5))#155.2函數(shù)的參數(shù)importmathdeftri_area(x,y,z):#海倫公式p=(x+y+z)/2,s=sqart(p*(p-x)(p-y)(p-z))if(x+y>zandx+z>yandz+y>x):p=(x+y+z)/2temp=p*(p-x)*(p-y)*(p-z)s=math.sqrt(temp)print("三角形面積為:",s)else:print("對(duì)不起,您輸入的邊長大小不能構(gòu)成三角形!")a=float(input("請(qǐng)輸入第一條邊:",))b=float(input("請(qǐng)輸入第二條邊:",))c=float(input("請(qǐng)輸入第三條邊:",))tri_area(a,b,c)例5.4
編寫函數(shù)判斷三邊能否構(gòu)成三角形,輸入三邊,如是三角形則求面積。5.3.1嵌套函數(shù)deftestB():print('----testBstart----')print('這里是testB函數(shù)執(zhí)行的代碼...(省略)...')print('----testBend----')deftestA():print('----testAstart----')testB()print('----testAend----')testA()5.3函數(shù)嵌套與遞歸如果函數(shù)A中,調(diào)用了另外一個(gè)函數(shù)B,那么先把函數(shù)B中的任務(wù)都執(zhí)行完畢之后才會(huì)回到上次函數(shù)A執(zhí)行的位置。5.3.2遞歸函數(shù)5.3函數(shù)嵌套與遞歸deffactorial(num):if(num>1):result=num*factorial(num-1)else:result=1returnresultprint(factorial(3))如果一個(gè)函數(shù)在內(nèi)部不是調(diào)用其它的函數(shù),而是調(diào)用自己本身,這個(gè)函數(shù)就是遞歸函數(shù)。deffactorial(n):result=0ifn==1:returnn#階乘為1的時(shí)候,結(jié)果為例1n=n*factorial(n-1)#n!=n*(n-1)!result+=n#階乘之和
returnresultnum=int(input("請(qǐng)輸入整數(shù)n:"))print(factorial(num))例5.5輸入整數(shù)n,用遞歸的方法求1!+2!+3!+4!+5!+...+n!5.3函數(shù)嵌套與遞歸deffabonacci(n):ifn<=2:result=1returnresultresult=fabonacci(n-1)+fabonacci(n-2)#第三個(gè)數(shù)是前兩個(gè)數(shù)的和
returnresultn=int(input("請(qǐng)輸入整數(shù)n:"))print(fabonacci(n))例5.6根據(jù)斐波那契數(shù)列1,1,2,3,5,8,13,21,34,……,用遞歸的方法計(jì)算出第n個(gè)數(shù)。5.3函數(shù)嵌套與遞歸lambda[arg1[,arg2,.....argn]]:expression其中arg1,.....argn是可選參數(shù)。sum=lambdaa,b:a+bprint(sum(10,20))#調(diào)用sum函數(shù)print(sum(20,20))deffun(a,b,opt):print("a=",a)print("b=",b)print("result=",opt(a,b))fun(1,2,lambdax,y:x+y)注意:lambda函數(shù)能接收任何數(shù)量的參數(shù)但只能返回一個(gè)表達(dá)式的值。匿名函數(shù)的應(yīng)用場合大部分在于將函數(shù)作為參數(shù)傳遞5.4匿名函數(shù)students=[{"name":"Tom","age":18},{"name":"James","age":19},{"name":"Alice","age":17}]stusdents.sort(key=lambdax:x['name'])局部變量:在函數(shù)內(nèi)部定義的變量。不同的函數(shù)可以定義相同名字的局部變量。a=100#a是全局變量,作用域從此開始。deftest1():a=200#a是局部變量,作用域從此開始,屏蔽全局變量aa+=1print(a)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衢州2025年浙江衢州市衢江區(qū)廿里鎮(zhèn)人民政府招聘第二批勞務(wù)派遣人員4人筆試歷年參考題庫附帶答案詳解
- 聊城2025年山東聊城東阿縣城區(qū)小學(xué)教師競聘100人筆試歷年參考題庫附帶答案詳解
- 濰坊2025年山東濰坊安丘市人民醫(yī)院招聘護(hù)理等工作人員22人筆試歷年參考題庫附帶答案詳解
- 淮南2025年安徽淮南壽縣選調(diào)教師及教研員210人筆試歷年參考題庫附帶答案詳解
- 河北2025年河北工業(yè)大學(xué)招聘專職科研人員筆試歷年參考題庫附帶答案詳解
- 撫州2025年江西撫州市宜黃縣城區(qū)中小學(xué)選調(diào)教師86人筆試歷年參考題庫附帶答案詳解
- 廣西2025年廣西固體廢物和化學(xué)品環(huán)境管理中心招聘筆試歷年參考題庫附帶答案詳解
- 山東2025年山東省文化和旅游廳所屬事業(yè)單位招聘41人筆試歷年參考題庫附帶答案詳解
- 婁底2025年湖南漣源市教育系統(tǒng)選調(diào)教師218人筆試歷年參考題庫附帶答案詳解
- 南通中共南通市海門區(qū)委機(jī)構(gòu)編制委員會(huì)辦公室招聘政府購買服務(wù)人員筆試歷年參考題庫附帶答案詳解
- 《非物質(zhì)文化遺產(chǎn)》課程教學(xué)大綱
- 小學(xué)英語名師工作室工作總結(jié)
- 2024年中考數(shù)學(xué)復(fù)習(xí):瓜豆原理講解練習(xí)
- 高一歷史期末試題中國近現(xiàn)代史
- (高清版)DZT 0210-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硫鐵礦
- 居民自建樁安裝告知書回執(zhí)
- QC080000體系內(nèi)部審核檢查表
- 初中語文仿寫訓(xùn)練
- 延遲焦化裝置(改)
- GB 12327-2022海道測量規(guī)范
- YS/T 416-2016氫氣凈化用鈀合金管材
評(píng)論
0/150
提交評(píng)論