資源簡介 (共20張PPT)python可以復用的代碼2.4項目導入活動1 用自定義函數實現火柴棒擺數字問題有6根火柴棒, 列出所有能擺出的自然數, 要求火柴棒正好用完。思考,利用6根火柴棒能夠列出的最大數字是多少呢?6根2根5根5根4根5根6根3根7根6根窮舉法(一個一個去判斷)~火柴棒擺數字問題算法分析1.數字“1”需要的火柴棒最少,所以能擺出的自然數最大是1112.計算0和111之間的所有數字,統計需要的火柴棒3.只要是恰好需要6根火柴棒的直接輸出。算法流程圖描述如何計算?103需要幾根?把每個數位上的數字所需要的火柴棒數加起來。火柴棒擺數字問題將其轉化成流程圖畫在圖2.4.3中火柴棒擺數字問題如何讓計算機找出這個數字中的所有個位數呢?(1)想一想,如果我們想得到“103”的個位上的“3”,哪種運算可以實現?除、整除還是取模?103%10=3(2)想一想,如何得到“103”的十位上的“0”,哪種運算可以實現?除、整除還是取模?(3)想一想,如何得到“103”的百位上的“1”,哪種運算可以實現?除、整除還是取模?103//10=1010//10=110%10=0x = num % 10num = num // 10num = 103x = num % 10num = num // 10x = num % 101%10=1f = [6,2,5,5,4,5,6,3,7,6]total = f[x]total = total+f[x]total = total+f[x]火柴棒擺數字問題實現方法:1.將這個數除以10求余(取模),求得個位數;2.將這個數除以10取整數3.重復第1和第2步驟,直到這個數為0編寫代碼:num = int(input(“請輸入0-111之間的任意數字”))(xx = num % 10f = [6,2,5,5,4,5,6,3,7,6]total = total+f[x]num = num // 10火柴棒擺數字問題x=num%10total=total+f[x]輸出totalf = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10print(total)用自定義函數實現火柴棒擺數字問題6sum = 6i = 0while(i<=111):if(Match_num(i)==sum):print(i)i = i + 1else:i=i+1函數用戶自定義函數函數庫中的標準函數,是Python提供給用戶的一系列已經編好的程序。如:用戶根據需要編寫的一段程序系統函數把某個功能的代碼封裝到一個代碼塊中,用來為某個重復使用的功能做調用的一個代碼塊。函數類型:def 函數名(參數):#函數說明語句或語句組return 返回值參數是用來向函數傳遞值的,當有多個參數時,各個參數之間用逗號隔開。函數執行完后,由return語句將表達式值返回給調用者,結束函數例如:def 函數名(參數1,參數2……):定義函數的基本格式:函數定義與調用函數的調用:指函數定義以后,在代碼的其他地方使用函數的動作函數的調用形式是函數名(參數)這個函數用來求n!在遇到函數的調用語旬factorial(4)時, 轉到函數中的第一行代碼開始執行。函數運行時,變量n會被賦值為4。函數執行完成返回變量s的值即24,然后回到語句total = factorial(4),將返回值賦給變量 total, 最后輸出。鞏固練習下列代碼的輸出結果是 ?def sum(a,b):c=a+breturn cprint(sum(4,5))9用自定義函數實現火柴棒擺數字問題def Match_num(num):f = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10return total6sum = 6i = 0while(i<=111):if(Match_num(i)==sum):print(i)i=i+1else:i=i+1①②③⑤④發布代碼任務二 發布共享代碼實現火柴棒擺數字問題首先做好發布前的準備工作。在D:\創建一個文件夾mymodule, 其中包含mymodule.py和setup.py兩個文件。mymodule.py是一個模塊文件, 其內容就是match_num函數。setup.py文件包含有關發布的元數據。請將 “計算一個數字需要多少 根火柴棒" 的函數match_num轉換為模塊 , 然后發布。def Match_num(num):f = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10return totalfrom distutils.core import setupsetup(name='mymodule’, #參數一定要與mymodule.py文件名相同version='l.0.0’, #版本號#參數一定要與mymodule.py文件名相同py_modules=['mymodule’],author='yd’, #作者author_email='yd@’ ,#作者郵箱#代碼功能描述description='計算一個數字需要多少根火柴棒',)構建發布文件然后打開mymodule所在的目錄,構建發布文件。 最后將發布文件安裝到你的Python本地副本中。 安裝完成后, mymodule文件夾包含了如圖2.4.4所示的文件。將發布安裝在你的python的本地副本中導入并使用模塊導入語句 import mymodule調用模塊內的函數時用 mymodule.match_num(參數) 來實現。發布代碼操作習題講解已知圖中各邊長,求多邊形的面積math模塊中定義了sqrt(求平方根)函數鞏固提升def shengxiao(year):animal=[“鼠”,”牛” ,”虎” ,”兔” ,”龍” ,”蛇” ,”馬” ,”羊” ,”猴” ,”雞” ,”狗” ,”豬”]index=(myyear-1972)%12return indexmyyear = int(input(“請輸入你的出生年份”))while myyear!=0:print(shengxiao(myyear))請編寫程序,實現輸入一個人的出生年份(>=1900),輸出他的生肖小結pythonTHANKYOU 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫