資源簡(jiǎn)介 (共18張PPT)——可 以 復(fù) 用 的 代 碼火 柴 棒 擺 數(shù) 字課前預(yù)習(xí)3分鐘時(shí)間預(yù)習(xí)課本P40-P43,完成以下題目知識(shí)點(diǎn)檢測(cè)1.用火柴棒,擺出下面的自然數(shù)。 下列說法正確的是( )A、可以用6根火柴棒擺放出0、9、13 B、可以用6根火柴棒擺放出0、8C、6根火柴棒能擺放的最大數(shù)是111 D、可以用6根火柴棒擺放出0、6、5C課前預(yù)習(xí)3分鐘時(shí)間預(yù)習(xí)課本P40-P43,完成以下題目知識(shí)點(diǎn)檢測(cè)2. Python中創(chuàng)建自定義函數(shù)的語法規(guī)范是( )。A.def 函數(shù)名([參數(shù)列表]): B.sub 函數(shù)名([參數(shù)列表]):C.del 函數(shù)名([參數(shù)列表]): D.define 函數(shù)名([參數(shù)列表]):A教 學(xué)目 標(biāo)了解函數(shù)的作用。通過擺放火柴棒問題,掌握函數(shù)的定義和調(diào)用方法。火柴棒擺數(shù)字一有6根火柴棒,列出所有能擺出的自然數(shù),要求火柴棒正好用完。問 題6根火柴棒能擺出的一位數(shù):6 2 5 5 4 5 6 3 7 66根火柴棒能擺出的二位數(shù):6根火柴棒能擺出的三位數(shù):0,6,914,41,77111火柴棒擺數(shù)字一1.算法分析計(jì)算自然數(shù)num需要多少根火柴棒,可以分別計(jì)算num中各個(gè)數(shù)位需要多少根火柴,然后將各數(shù)位對(duì)應(yīng)的火柴棒根數(shù)進(jìn)行累加。103如何計(jì)算自然數(shù)num需要多少根火柴棒?103→2 6 513火柴棒擺數(shù)字一2.用流程圖表示 將num除以10取余,求得個(gè)位數(shù); 然后將num除以10取整,去掉個(gè)位數(shù)。重復(fù)步驟 直到num為0。顯然可用while循環(huán)。如何獲得num各數(shù)位的值?①num=103→num%10= 3→num=num//10②num=10→num%10= 0→num=num//10③num=1→num%10= 1→num=num//10火柴棒擺數(shù)字一num = int(input("請(qǐng)輸入一個(gè)數(shù)"))f = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6] # 0-9的數(shù)字分別需要多少根小棒if num == 0: # 火柴棒總數(shù)變量賦初值total = ①else:total=0 # 火柴棒總數(shù)變量賦初值while (num>0):x=② # 取num除以10的余數(shù),即num的個(gè)位數(shù)total = total+f[x] # 所需火柴棒數(shù)累加num=③ # num整除10,即去掉num的個(gè)位print(total)單個(gè)數(shù)字0~9需要的火柴棒根數(shù)可預(yù)先存儲(chǔ)到列表f中。3.編程實(shí)現(xiàn)火柴棒擺數(shù)字一num = int(input("請(qǐng)輸入一個(gè)數(shù)"))f = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6]if num == 0:total = 6else:total=0while (num>0):x=num%10total = total+f[x]num=num//10print(total)①num==103 >0x=103%10 ==>3 total=0+5 ==>5 num=103//10 ==》10②num==10 >0x=10%10 ==>0 total=5+6 ==>11 num=10//10 ==》1③num==1 >0x=1%10 ==>1 total=11+2 ==>13 num=1//10 ==》0④num==0 ==》不執(zhí)行循環(huán)過程解析:num==103根據(jù)以上分析,對(duì)每一個(gè)自然數(shù)進(jìn)行火柴棒個(gè)數(shù)的統(tǒng)計(jì)需要重復(fù)使用,因此可以設(shè)計(jì)函數(shù)優(yōu)化代碼。函數(shù)二def 函數(shù)名(形式參數(shù))語句或語句組return 返回值函數(shù)分類:系統(tǒng)函數(shù)和用戶自定義函數(shù).自定義函數(shù):函數(shù)一般包括函數(shù)名、參數(shù)、返回值和函數(shù)體4部分。其中函數(shù)名和函數(shù)體是必不可少的,參數(shù)和返回值可根據(jù)需要進(jìn)行定義。標(biāo)準(zhǔn)格式變量=函數(shù)名(實(shí)際參數(shù))調(diào) 用函數(shù)體函數(shù)調(diào)用返 回 值函數(shù)二1.以下程序的執(zhí)行結(jié)果為:知識(shí)點(diǎn)檢測(cè)函 數(shù)主程序先執(zhí)行主程序只有調(diào)用函數(shù)的時(shí)候才能執(zhí)行函數(shù)部分用函數(shù)編程實(shí)現(xiàn)火柴棒擺數(shù)字三def match_num(num):f=[6,2,5,5,4,5,6,3,7,6] # 0~9的數(shù)字分別需要多少根小棒if num==0:total=6else:total=0 # 火柴棒總數(shù)變量賦初值while (num>0):x=num % 10 # 取num除以10的余數(shù),即num的個(gè)位數(shù)total=total+f[x] # 所需火柴棒數(shù)累加num=num//10 #num整除10,即去掉num的個(gè)位數(shù)return total #返回需要多少根火柴棒數(shù)三從0到111依次判斷這些數(shù)是不是恰巧需要6根火柴棒snum=6 #6根火柴棒print("你可以拼出這些數(shù)字:")for i in range( ① ):if match_num(② ) ==snum: #如果i需要的火柴棒數(shù)等于現(xiàn)有火柴棒數(shù)print(i)用函數(shù)編程實(shí)現(xiàn)火柴棒擺數(shù)字三for i in range( 112):if match_num(i) ==snum:print(i)用函數(shù)編程實(shí)現(xiàn)火柴棒擺數(shù)字①i=0match_num(0)==>6 ==> 打印0②i=1match_num(1)==>2 ==> 不打印③i=2match_num(2)==>5 ==> 不打印……i=111match_num(111)==>6 ==> 打印過程解析:def match_num(num):f=[6,2,5,5,4,5,6,3,7,6]if num==0:total=6else:total=0while (num>0):x=num % 10total=total+f[x]num=num//10return total課堂小練練習(xí)1def shengxiao(year):zodiac=["鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬"]index=(year-1900)%12return zodiac[___①___]myyear=int(input("請(qǐng)輸入出生年份,輸入0結(jié)束:"))while myyear != ___②___:print("你的生肖是:", ___③___) # 輸出結(jié)果myyear = int(input("請(qǐng)輸入出生年份,輸入0結(jié)束:"))輸入年份,輸出該年對(duì)應(yīng)的生肖課堂小結(jié)課 后 鞏 固2.以下程序語句輸出結(jié)果為:( )def factorial(n):#求n!s=1for i in range(2,n+1):s=s*ireturn s#調(diào)用factorial函數(shù)total=factorial(4)print(total)A、10 B、6 C、24 D、12C1.函數(shù)定義中,函數(shù)名、參數(shù)、返回值和函數(shù)體四個(gè)部分,哪些是必不可少的?( )A、函數(shù)名、返回值 B、參數(shù)、返回值C、函數(shù)體與返回值 D、函數(shù)名、函數(shù)體DTHE END 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫