資源簡介 浙教版信息技術必修一《數據與計算》第三章 算法的程序實現(2)【知識結構體系】【知識梳理】(二)順序結構的程序實現1.程序樣例將兩個整型變量a,b的值互換‘#’后面的內容為注釋,對程序代碼進行解釋、說明,程序運行時不執行。拓展:兩個變量值的互換也可表示為a,b=b,a。2.Python常見內建函數(1)input([prompt]):獲取輸入,函數的參數為輸出提示字符,返回值為字符串類型(2)print():輸出內容到控制臺。當參數只有一個,會自動將非字符類型轉為字符類型后輸出。當參數有多個,可以用逗號連接后轉換位字符串輸出。例:print(10);print(10,”全”,10,”美”)(3)int(object[,base]):將數值字符串轉為整數類型,base聲明進制類型,默認base=10。返回值為十進制整數類型。例int(“FF”,16)=255(三)分支結構的程序實現1.if語句一般格式條件是一個表達式,它的值可以是真(True)或假(False)。當條件為真時,執行語句塊1中的語句,否則(條件為假)執行語句塊2中的語句。如果程序只需要對條件為真的情況做出處理,那么if 語句可省略else及語句塊2 部分,格式變成:(1)Python中行位冒號的作用是告訴Python接下來要創建一個新的語句塊,因此冒號結尾后,接下來應該有縮進(2)Python用代碼縮進表示代碼間的包含關系,同一級別代碼縮進相同(3)當<判斷條件>為True才執行對應分支語句塊2.if-elif語句當程序需要對多個條件進行判定時,可以用帶有elif子句的if語句來實現,其格式為:(1)一個if語句可以包含多個elif語句,最后一個else子句是可選的,僅當其if語句中的條件為假時才執行。(2)elif 和 else 并非必須,且當前面有條件(if)滿足后,后面的判斷(elif)會直接跳過,不執行。3.樣例程序(四)循環結構1.for語句格式為:(1)for語句通過遍歷序列中的元素實現循環,序列中的元素會被依次賦值給變量,然后執行一次循環體。當序列中的元素全部遍歷完時,程序會自動退出循環,繼續執行else子句中的語句塊(該else子句可選)。(2)for循環是有限次循環,<循環對象>可以是字符串、列表,也可以是range()函數。(3)range(start,stop,step)格式和字符串或列表切片類似。如range(0,10,1)能生成0-9這10個整數序列。start缺省時默認值為0,步長step缺省時默認值為1.(4)continue:結束當前次循環,進入下一次循環(5)break:若循環過程中執行了循環體中的break語句,則程序會中途退出for語句,轉而去執行for語句后面的語句(即使有else子句,該子句也不會被執行)。(6)樣例程序2.while語句當一個循環執行之前,可能并不知道它需要執行的次數。這時,就可以使用while循環。其常見格式如下:(1)while循環在執行時,首先會判斷條件是否為真,如果條件為真,執行一次循環體,再次判斷條件是否為真,如果仍為真,那么再執行一次循環體,以此類推,直到條件為假時退出while 語句。(2)while語句的判斷條件如果不當,可能會造成“無限循環”。(3)break:結束并退出當前層循環(4)continue:結束當前次循環,進入下一次循環(5)樣例程序(五)函數與模塊1.函數的構造及應用定義函數的語法為:(1)函數名的命名規則和變量名一樣。完成函數的構造后,在程序中就可以根據需要調用該函數。(2)函數參數可以設置默認值:<參數3>=<默認值>(3)return 語句用于返還函數處理結果,并且結束函數運行(4)函數內部變量為局部變量,當需要使用全局變量時需要用global聲明2.模塊的導入及應用(1)導入函數模塊的方法使用import語句或from-import語句可導入模塊,具體用法包括以下4種:①import <庫名>②import <庫名> as <重命名>③from <庫名> import <函數名>④from <庫名> import *示例如下:(2)math模塊(3)random模塊(4)Image模塊Image 模塊是PIL 庫(Python Imaging Library)中的重要模塊,可以獲取圖像尺寸和像素顏色、旋轉圖像或改變圖像格式等。(5)其他模塊用于實現部分操作系統功能(可用于文件、目錄等操作)的os模塊;與時間處理有關的time模塊;可以實現科學計算、數據可視化的numpy和matplotlib;用于多媒體開發和游戲軟件開發的pygame模塊;支持圖形處理的tkinter。三、簡單算法及其程序實現(一)解析算法及其程序實現用數學公式或解題步驟計算結果樣例:雞兔同籠問題:今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何 head,foot = eval(input("請輸入頭和足的數量,格式是:頭,足"))rabbit = (foot-head*2)/2chick = head-rabbitprint("兔子有{}只,雞有{}只".format(rabbit,chick)(二)枚舉算法及其程序實現枚舉算法的基本思想是把按一定的順序一一列舉問題所有可能的解,然后判斷每一個列舉出的可能解是否為正確的解。在枚舉算法的程序實現中,逐一列舉出每一個可能解,判斷其是否為正確解的過程可采用循環結構來實現。而在利用問題提供的約束條件篩選、判斷解的過程中則需要用到分支結構。樣例:head,foot = eval(input("請輸入頭和足的數量,格式是:頭,足"))for rabbit in range(foot//4):if rabbit*4+(head-rabbit)*2==foot:print("兔子有{}只,雞有{}只".format(rabbit,head-rabbit))(三)算法程序實現的綜合應用【典型例題】1.設a=2,b=3,c=4,d=5,表達式a>b and c<=d or 2*a>c的值是( )A.True B.False C.-1 D.12.列表a存儲某校部分學生的姓名、身高(cm),編程求身高最高的學生姓名,python代碼如下:程序運行結果如下: 最高的學生姓名是小李a=[["小麗",169],["小明",167],["小紅",166],["小李",179],["小吳",171],["小剛",177]]stui=0for i in range(len(a)): if ① : stui=iprint("最高的學生姓名是",② )上述程序段①、②處的語句分別為( )A.①a[i]>a[stui] ②a[stui][0]B.①a[i]>a[stui] ②a[i][0]C.①a[i][1]>a[stui][1] ②a[stui][0] D.①a[i][1]>a[stui][1] ②a[i][0]3.列表a中有10個數據,用如下程序段找出大于60的數的個數,畫線處可以填( )a=[35,23,98,43,86,31,29,57,62,78] n=θ m=6θ for i in a: if _____: n+= 1 print("個數: ",n)A.a[i]>m B.i>m C.a>m D.a(i)>m4.將正整數n分解為兩個正整數之和,其中一個能3整除,另一個能被7整除。統計分解方法共有幾種的Python程序段如下:cnt = 0i = 7while i < n :print(cnt)方框中的代碼由以下三部分組成:① i = i + 7 ② j = n – i ③ if j % 3 == 0 : (換行)) cnt = cnt + 1下列選項中,代碼順序正確的是( )A.①③② B.②③① C.③②① D.②①③5.運行以下Python代碼的結果是( )s="" for i in range(1,4): for j in range(1,i+1): s=s+" "+str(i+j) print(s) s="" 空字符串 A. 2 2 4 4 6 8 B. 2 3 4 5 6 7C. 2 3 4 4 5 6 D. 2 2 3 4 5 6A.A B.B C.C D.D6.有如下 Python程序段:from random import *a = [10,20,30,40,50]key = randint(0, 100)# randint(p,q)用于生成區間[p,q]內的隨機整數x = y = 0i,j = 0, len(a) - 1while i <= j: m = randint(i,j) x += 1 if a[m] < key: i = m + 1 y += 1 else: j = m - 1 y -= 1執行該程序后,下列說法不正確的是( )A.變量 x和y的值可能為1 和-1B.變量 x 和 y的值可能為4 和-2C.若 key為50, 則變量x和y的值可能為5和5D.若 key為35, 則變量x和y的值可能為5和1題號 1 2 3 4 5 6答案 B C B B C C【參考答案】 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫