資源簡介 (共16張PPT)可以復用的代碼(函數(shù)和模塊)函數(shù)系統(tǒng)函數(shù)用戶自定義函數(shù)例:函數(shù)名遵循變量名規(guī)則有無參數(shù)都要加小括號冒號結(jié)尾做生面執(zhí)行命令自定義函數(shù)的關鍵詞有無返回值跟函數(shù)有關自定義函數(shù)內(nèi)容函數(shù)體def 函數(shù)名(參數(shù))#函數(shù)說明語名或語句組return 返回值def add(x,y):z=x+yreturn z例:自定義函數(shù)調(diào)用自定義函數(shù)a=add(3,4)print(a)print(add(3,4))12求以下多邊形的面積(自定義函數(shù)的應用)題:海倫公式:a,b,c為三角形的邊長,p為半周長,即p=(a+b+c)/2三角形面積公式分析問題設計算法循環(huán)控制條件循環(huán)體falsetrue循環(huán)結(jié)束后的語句輸入多邊每個三角形的邊長開始結(jié)束abcgdef編寫代碼import mathdef s(a,b,c):#求三角形的面積p=(a+b+c)/2mj=math.sqrt(p*(p-a)*(p-b)*(p-c))#開平方根(函數(shù))return mj#以下為主程序a,b,c,d,e,f,g=3,2,3,4,3,4,5print(s(a,e,f)+s(b,f,g)+s(g,c,d))調(diào)試運行書本實例題:六根火柴棒可以排出的最大數(shù)字分析問題設計算法i<=111i=i+1否是i=0開始結(jié)束i需要火柴棒6根輸出i是否索引 0 1 2 3 4 5 6 7 8 9元素 6 2 5 5 4 5 6 3 7 6列表:match=[6,2,5,5,4,5,6,3,7,6]列表中的順序每個數(shù)字需要的火柴棒1.列出5個用6根火柴棒擺出的數(shù)字,分別是0,6,9,14,77,1112.要擺出多位數(shù)字怎么實現(xiàn)?1.數(shù)字“1”需要的火柴棒最少,所以能擺出的自然數(shù)最大是1112.計算0和111之間的所有數(shù)字,統(tǒng)計需要的火柴棒3.只要是恰好需要6根火柴棒的直接輸出。將這個數(shù)的每個數(shù)位上的數(shù)字所需要的火柴棒數(shù)加起來。實現(xiàn)方法是將這個數(shù)除以10取余,求得個位數(shù);然后將這個個位數(shù)需要的火柴棒數(shù)累加;接著將這個數(shù)除以10取整,去掉個位數(shù);重復以上步驟直到這個數(shù)為0。去掉num的個位數(shù)否求num的個位數(shù)num>0是求個位數(shù)需要火柴棒數(shù)火柴棒數(shù)累加def match_num(num):list=[6,2,5,5,4,5,6,3,7,6]s=0while(num>0):i=num%10s=s+list[i]num=num//10print(s)i=num%10否是list=[6,2,5,5,4,5,6,3,7,6]自定義函數(shù)結(jié)束num>0輸出s是s=0s=s+list[i]num=num//10def match_num(num):f=[6,2,5,5,4,5,6,3,7,6] # 0-9的數(shù)字分別需要多少根小棒if num==0: # 火柴棒總數(shù)變量賦初值total=f[0]else:total=0while (num>0):x=num % 10 # 取num除以10的余數(shù),即num的個位數(shù)total=total+f[x] # 所需火柴棒數(shù)累加num=num//10 #num整除10,即去掉num的個位數(shù)return total #返回需要多少根火柴棒數(shù)#以下為主程序snum=6 # 6根火柴棒print("你可以拼出這些數(shù)字:")for i in range(112):if match_num(i)==snum: #如果i需要的火柴棒數(shù)等于現(xiàn)有火柴棒數(shù)print (i)input("運行完畢,請按回車鍵退出...") 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫