![Python科學(xué)計(jì)算及應(yīng)用課件:Python函數(shù)計(jì)算_第1頁(yè)](http://file4.renrendoc.com/view9/M01/17/3C/wKhkGWckNn2AXlKMAAJsEZ3lYj8212.jpg)
![Python科學(xué)計(jì)算及應(yīng)用課件:Python函數(shù)計(jì)算_第2頁(yè)](http://file4.renrendoc.com/view9/M01/17/3C/wKhkGWckNn2AXlKMAAJsEZ3lYj82122.jpg)
![Python科學(xué)計(jì)算及應(yīng)用課件:Python函數(shù)計(jì)算_第3頁(yè)](http://file4.renrendoc.com/view9/M01/17/3C/wKhkGWckNn2AXlKMAAJsEZ3lYj82123.jpg)
![Python科學(xué)計(jì)算及應(yīng)用課件:Python函數(shù)計(jì)算_第4頁(yè)](http://file4.renrendoc.com/view9/M01/17/3C/wKhkGWckNn2AXlKMAAJsEZ3lYj82124.jpg)
![Python科學(xué)計(jì)算及應(yīng)用課件:Python函數(shù)計(jì)算_第5頁(yè)](http://file4.renrendoc.com/view9/M01/17/3C/wKhkGWckNn2AXlKMAAJsEZ3lYj82125.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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ù),用來(lái)接收參數(shù)用的,稱為“形參”,調(diào)用時(shí)小括號(hào)中的參數(shù),用來(lái)傳遞給函數(shù)用的,稱為“實(shí)參”defdivid(a,b):shang=a//byushu=a%breturnshang,yushuprint(divid(11,3))#顯示(3,2)例5.2輸入一個(gè)字符串,自定義str_len()函數(shù),求字符串的長(zhǎng)度。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編寫(xiě)一個(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ì)的方式來(lái)進(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)一步得到的,通過(guò)元組來(lái)存放事先未知的類似位置參數(shù)的參數(shù),通過(guò)字典來(lái)存放事先未知的鍵值對(duì)(關(guān)鍵字參數(shù))。可變長(zhǎng)度參數(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ì)不起,您輸入的邊長(zhǎng)大小不能構(gòu)成三角形!")a=float(input("請(qǐng)輸入第一條邊:",))b=float(input("請(qǐng)輸入第二條邊:",))c=float(input("請(qǐng)輸入第三條邊:",))tri_area(a,b,c)例5.4
編寫(xiě)函數(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)用場(chǎ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是全局變量,作用域從此開(kāi)始。deftest1():a=200#a是局部變量,作用域從此開(kāi)始,屏蔽全局變量aa+=1print(a)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 時(shí)尚品牌店裝修合同樣本
- 2025年度特種設(shè)備安全管理停薪留職協(xié)議
- 夜間快遞運(yùn)輸線路外包合同
- 保險(xiǎn)公司裝修質(zhì)量保證協(xié)議
- 產(chǎn)業(yè)園裝修貸款合同范本
- 2025年度網(wǎng)絡(luò)安全應(yīng)急響應(yīng)工程師聘請(qǐng)合同-@-1
- 學(xué)校教室半包裝修合同樣本
- 工廠車間裝修包工協(xié)議
- 家電賣場(chǎng)展位裝修合同書(shū)
- 保險(xiǎn)公司裝修制式合同樣本
- 自卸車司機(jī)實(shí)操培訓(xùn)考核表
- 教師個(gè)人基本信息登記表
- 中考現(xiàn)代文閱讀理解題精選及答案共20篇
- ESD測(cè)試作業(yè)指導(dǎo)書(shū)-防靜電手環(huán)
- 高頻變壓器的制作流程
- 春季開(kāi)學(xué)安全第一課PPT、中小學(xué)開(kāi)學(xué)第一課教育培訓(xùn)主題班會(huì)PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級(jí)上冊(cè)語(yǔ)文教材分析
- 艾賓浩斯遺忘曲線復(fù)習(xí)方法表格模板100天
- APR版制作流程
- 《C++程序設(shè)計(jì)》完整教案
評(píng)論
0/150
提交評(píng)論