資源簡介 (共14張PPT)2.4 可以復用的代碼教育科學出版社高中信息技術必修1《數據與計算》第二章 編程計算有6根火柴棒,列出所有能擺出的自然數,要求火柴棒正好用完。思考:6根火柴棒能擺放的最大數是多少?任務一: 用自定義函數實現火柴棒擺數字問題數字 0 1 2 3 4 5 6 7 8 9需要的 火柴棒 6 2 5 5 4 5 6 3 7 6可以用6根火柴棒擺放的數字,分別是:069144177111任務一: 用自定義函數實現火柴棒擺數字問題分析問題: 分解這個數字中的每個位數上的數字設計算法:實現方法:1、將這個數除以10求余(取模),求得個位數2、將這個數除以10取整數3、重復第1和第2步驟,直到這個數為0如:123分解成1、2、3運算 商 余數123%10 3123//10 1212%10 212//10 11%10 11//10 0開 始結 束i = 0i < = 111i 需要6根火柴棒輸出 ii = i + 1YNYN任務一: 用自定義函數實現火柴棒擺數字問題數字 0 1 2 3 4 5 6 7 8 9需要的 火柴棒 6 2 5 5 4 5 6 3 7 6編寫程序:list=[6,2,5,5,4,5,6,3,7,6]print("6根火柴棒可以擺出:",end=' ')for num in range(112):if num==0:s=list[0]else:否num1=nums=0while num1>0:i=num1%10s=s+list[i]num1=num1//10if s==6:print(num,end=' ')print()開 始結 束i = 0i < = 111i 需要6根火柴棒輸出 ii = i + 1YNYN任務一: 用自定義函數實現火柴棒擺數字問題函數:將一組語句用一個名字封裝起來。系統函數函數庫中的標準函數,是程序設計語言或操作系統提供給用戶的一系列已經編好的程序。print() input()int() float()自定義函數用戶自己編寫的一段程序。基本格式 :def 函數名(參數):語句或語句組return 返回值向函數傳遞值,多個參數之間用逗號隔開將表達式的值返回給調用者重復使用的代碼同變量命名規則任務一: 用自定義函數實現火柴棒擺數字問題函數調用:函數名(參數)#調用factorial函數total=factorial(4)print(total)因此,這一行才是主程序的第一行,從這里開始執行。def factorial(n):s=1for i in range(2,n+1):s=s*ireturn s因為出現def,所以跳過任務一: 用自定義函數實現火柴棒擺數字問題自定義函數:編碼實現:計算6根火柴棒能擺出的數字snum=6i=1while i<=111:if macth_num(i)==snum:print(i)i=i+1else:i=i+1snum=6for i in range(112):if macth_num(i)==snum:print(i)def macth_num(num):f=[6,2,5,5,4,5,6,3,7,6]total=0if num==0:total=f[0]else:while num>0:x=num%10total=total+f [x]num=num//10return total計算擺出一個數字需要的火柴棒數while循環for循環課 堂 練 習1.在 Python 語言中,創建自定義函數的語法規范是( )。A.del 函數名(參數): B.def 函數名(參數):C.define 函數名(參數): D.sub 函數名(參數):2.以下程序的輸出正確的是( )A.81 7 B. 4 4 C.12 7 D.hellodef mypow(x,y=2):return x**y,x+yprint(“hello”)a,b=mypow(3,4)print(a,b)BA3.下列代碼的輸出結果是什么?( )def sum(a,b):c=a+breturn cprint(sum(4,5))A.4 B.5 C.9 D.1C課 堂 練 習def factorial(n):#求n!s=1for i in range(2,n+1):s=s*ireturn s#調用factorial函數total=factorial(4)print(“4的階乘:”total)def factorial(n):s=1for i in range(2,n+1):s=s*ireturn sx=int(______________________)total=0for j in range(__,_____):print(i,"的階乘是:", )total=____ ______print("1!+2!+3!+....+%d!=%d:"(x,total))計算1!+2!+3!+......+(x-1)!+x! (x由鍵盤輸入)input(“請輸入x:”)factorial(i)x+1total+factorial(j)計算4!1課 堂 練 習請編寫程序,實現輸入一個農歷年份(>=1900),輸出該年對應的生肖,直到輸入0結束,運行結果如圖2.4.5所示。def shengxiao(year):#求生肖zodiac=[“鼠”,“牛”,“虎”,“兔”,“龍”,“蛇”,“馬”,“羊”,“猴”,“雞”,“狗”,“豬”]index=(year-1972)%12return zodiac[ index]#以下為主程序myyear=int(input(“請輸入農歷年份,輸出0結束:”))while myyear!=0print(“生肖是:”,shengxiao(myyear))myyear=int(input(“請輸入農歷年份,輸入0結束:”))任務二: 發布共享代碼1、首先做好發布前的準備工作。在D:創建一個文件夾mymodule,其中包含mymodule.py和setup.py兩個文件。2、打開mymodule所在的目錄,構建發布文件。3、 最后將發布文件安裝到你的Python本地副本中。 安裝完成后, mymodule文件夾包含了如圖2.4.4所示的文件。任務二: 發布共享代碼將發布安裝在你的python的本地副本中任務二: 發布共享代碼導入并使用模塊導入語句 import mymodule調用模塊內的函數時用 mymodule.match_num(參數) 來實現。課 堂 總 結函數模塊代碼復用的常見方法導入模塊:import 模塊名例:import random使用函數:模塊名.函數名()例:random.randint()自定義函數:def 函數名(參數):語句或語句組return 返回值 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫