資源簡(jiǎn)介 (共36張PPT)第3章課時(shí)12 函數(shù)與模塊信息技術(shù)課標(biāo)梳理·微知著教材重點(diǎn) 課標(biāo)要求 學(xué)業(yè)質(zhì)量水平函數(shù)與模塊 了解函數(shù)和模塊的功能及其應(yīng)用,能感知模塊化編程的思想 2-2教材研析·固基礎(chǔ)1模塊化程序設(shè)計(jì)1.模塊化程序設(shè)計(jì)思想:將問題分解成若干個(gè)子問題,用相對(duì)獨(dú)立的程序段來針對(duì)性的解決各個(gè)子問題,提高程序設(shè)計(jì)的效率。2.優(yōu)點(diǎn):對(duì)于一些常用的程序代碼,以模塊化的形式進(jìn)行保存,需要時(shí)可重復(fù)調(diào)用。3.實(shí)現(xiàn)方式:函數(shù)、模塊等。2函數(shù)1.定義:組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一或相關(guān)聯(lián)功能的代碼段。2.作用:能提高應(yīng)用的模塊性和代碼的重復(fù)利用率。3.分類(1)內(nèi)建函數(shù):Python提供了許多內(nèi)建函數(shù),能實(shí)現(xiàn)許多功能,比如print()。函數(shù) 描述print(x) 輸出x的值input([prompt]) 獲取用戶輸入int(object) 將字符串和數(shù)字轉(zhuǎn)換成整型float(object) 將字符串和數(shù)字轉(zhuǎn)換成實(shí)型abs(x) 返回x的絕對(duì)值help() 提供交互式幫助len(seq) 返回序列的長(zhǎng)度str(x) 將x轉(zhuǎn)換成字符串chr(x) 返回x對(duì)應(yīng)的字符ord(x) 返回x對(duì)應(yīng)的ASCII值round(x[,n]) 對(duì)x進(jìn)行四舍五入(如果給定n,就將數(shù)x轉(zhuǎn)換為小數(shù)點(diǎn)后有n位的數(shù))max(s,[,args...]) 返回序列的最大值(如果給定多個(gè)參數(shù),則返回給定參數(shù)中的最大值)min(s,[,args...]) 返回序列的最小值(如果給定多個(gè)參數(shù),則返回給定參數(shù)中的最小值)①chr():編碼轉(zhuǎn)換為對(duì)應(yīng)的字符·參數(shù):x可以是10進(jìn)制也可以是16進(jìn)制形式的數(shù)字(0x開頭的為十六進(jìn)制數(shù))。·范例>>> chr(25991)'文'>>> chr(65)'A'>>> print(chr(48),chr(65),\chr(97)) #十進(jìn)制為參數(shù)0 A a>>> print(chr(0x30),chr(0x41),\chr(0x61)) #十六進(jìn)制為參數(shù)0 A a②ord():獲取字符的整數(shù)表示·參數(shù):x為字符(ASCII碼或Unicode)。·返回值:x對(duì)應(yīng)的十進(jìn)制整數(shù)。·范例>>> print(ord('0'),ord('A'),ord('a'))48 65 97>>> print(ord('你'))20320(2)自定義函數(shù):實(shí)際程序設(shè)計(jì)中,可根據(jù)實(shí)際情況自己構(gòu)造函數(shù)實(shí)現(xiàn)內(nèi)建函數(shù)無法提供支持的功能,以實(shí)現(xiàn)常用代碼的模塊化。4.自定義函數(shù)語(yǔ)法def 函數(shù)名(參數(shù)集合): <函數(shù)體>return [函數(shù)值表達(dá)式] (1)關(guān)鍵詞def標(biāo)識(shí)自定義函數(shù)的開始。(2)自定義函數(shù)命名規(guī)則:同變量名命名規(guī)則。(3)形參必須放在圓括號(hào)()內(nèi),多個(gè)形參之間用逗號(hào)分隔。(4)return [函數(shù)值表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方[不帶表達(dá)式的 return 相當(dāng)于返回 None]。(5)自定義函數(shù)調(diào)用:函數(shù)名(實(shí)參)。(6)注意點(diǎn):自定義函數(shù)代碼要放在主程序調(diào)用函數(shù)的代碼之前。(7)范例:輸入2數(shù),輸出較大數(shù)。框中為自定義函數(shù)compare,最后1行代碼中調(diào)用了該函數(shù)。典例1 輸出當(dāng)前序列中所有素?cái)?shù)的Python程序如下,請(qǐng)?jiān)趧澗€處填上合適的代碼。#以下代碼用于自定義一個(gè)判斷參數(shù)x是否為素?cái)?shù)的函數(shù)。①________sspd(x): if x>1: cs=2 flag=FalseDef while cs <=x - 1:if x % cs==0:flag=Truebreakcs=cs + 1?、赺___________b=int(input('請(qǐng)輸入一個(gè)正整數(shù)作為\序列起點(diǎn):'))e=int(input('請(qǐng)輸入一個(gè)正整數(shù)作為\序列終點(diǎn):'))ans=''for i in range(b,e+1,1):if ③________________ ans=ans+''+str(i)print(b,'~',e,'中的素?cái)?shù)有:',ans)return flagsspd(i)==False:解析 ①自定義函數(shù)以def起始。②根據(jù)自定義函數(shù)的語(yǔ)法判斷此處應(yīng)為return [函數(shù)值表達(dá)式];根據(jù)題意和代碼分析可知,if語(yǔ)句判斷前flag為False,滿足if后條件 “x % cs==0”時(shí),改變 flag的值為True并跳出循環(huán)。 flag的值為True判斷結(jié)果非素?cái)?shù),值為False是素?cái)?shù)。③有自定義函數(shù),則主程序中一定有函數(shù)名調(diào)用的語(yǔ)句,且if后該條件滿足,i連接到結(jié)果串,所以滿足該條件一定為素?cái)?shù) 調(diào)用函數(shù)sspd()對(duì)i判斷的結(jié)果應(yīng)為 False。3模塊1.描述:用Python解釋器來編程時(shí),若從 Python 解釋器退出再進(jìn)入,則原來定義的所有的方法、函數(shù)和變量等內(nèi)容就都消失了。可以把某用戶定義的所有函數(shù)和變量等內(nèi)容存放在一個(gè)文件中,這個(gè)文件被稱為模塊,其后綴名是.py。模塊可以被別的程序引入,在別的程序中也能使用該模塊中的函數(shù)等功能。這也是使用Python標(biāo)準(zhǔn)庫(kù)的方法。2.功能:Python模塊補(bǔ)充了許多功能強(qiáng)大的函數(shù)。3.分類(1)Python內(nèi)置模塊(可引入后直接使用)(2)第三方模塊(經(jīng)過安裝才能引入使用)4.常用Python內(nèi)置模塊(1)math:數(shù)學(xué)常用常數(shù)和函數(shù)名稱 含義math.e 自然常數(shù)emath.pi 圓周率πmath.ceil(x) 對(duì)x向上取整比如x=1.2,返回2math.floor(x) 對(duì)x向下取整比如x=1.2,返回1math.pow(x,y) 指數(shù)運(yùn)算,得到x的y次方math.log(x) 對(duì)數(shù)運(yùn)算,默認(rèn)基底為emath.sin(x) 正弦函數(shù)math.cos(x) 余弦函數(shù)math.tan(x) 正切函數(shù)math.degrees(x) 弧度轉(zhuǎn)換成角度math.radians(x) 角度轉(zhuǎn)換成弧度典例2 寫出Python Shell中運(yùn)行語(yǔ)句“import math”后,測(cè)試下列表達(dá)式,請(qǐng)寫出運(yùn)行結(jié)果。表達(dá)式 結(jié)果>>>math.ceil(2.1) >>>math.ceil(2.7) >>>math.floor(2.1) >>>math.floor(2.7) >>>math.pow(2,5) >>>math.sqrt(81) 表達(dá)式 結(jié)果>>>math.ceil(2.1) 3>>>math.ceil(2.7) 3>>>math.floor(2.1) 2>>>math.floor(2.7) 2>>>math.pow(2,5) 32.0>>>math.sqrt(81) 9.0(2)random:生成隨機(jī)數(shù)名稱 含義random.random() 隨機(jī)生成一個(gè)[0,1)范圍內(nèi)的實(shí)數(shù)random.uniform(a,b) 隨機(jī)生成一個(gè)[a,b]范圍內(nèi)的實(shí)數(shù)random.randint(a,b) 隨機(jī)生成一個(gè)[a,b]范圍內(nèi)的整數(shù)random.choice(seq) 從序列的元素中隨機(jī)挑選一個(gè)元素比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)random.sample(seq,k) 從序列中隨機(jī)挑選k個(gè)元素random.shuffle(seq) 將序列的所有元素隨機(jī)排序(3)Image:PIL庫(kù)中重要模塊,用以完成圖像的常用操作。①引入格式from PIL import Image②常用功能名稱 含義im=Image.open(file) im指向從文件加載的圖像im.show() 顯示圖像print(im) 輸出圖像具體信息im.rotate(45) 生成旋轉(zhuǎn)角度后的新圖片im.save(outfile) 當(dāng)前圖片存儲(chǔ)為新文件 outfileim.format 圖像格式im.size 圖像尺寸im.mode 模式:圖像的像素格式。常見的“L”(luminance)表示灰度圖像,“RGB”表示真彩色圖像,“CMYK”表示出版圖像im.convert(mode) 將當(dāng)前圖像轉(zhuǎn)換為其他模式(如“L”),并且返回新的圖像im.seek(frame number) 在給定文件的圖像序列中查找指定的幀。默認(rèn)第0幀(4)turtle:一個(gè)簡(jiǎn)單的繪圖工具,叫做海龜繪圖(Turtle Graphics)。 5.其他常用模塊簡(jiǎn)介(1)numpy:實(shí)現(xiàn)科學(xué)計(jì)算(2)matplotlib:數(shù)據(jù)可視化6.引入第三方模塊(1)引入模塊①格式:import 模塊名 ②作用:往當(dāng)前程序中引入模塊③范例<1>建立模塊文件(與引用該模塊的程序位于同一文件夾下,則可省略引入路徑的說明)<2>引入模塊<3>調(diào)用:此方法引入模塊后,調(diào)用函數(shù)時(shí)需在函數(shù)名前指明函數(shù)所屬的模塊名,否則會(huì)報(bào)“函數(shù)未定義”的錯(cuò)誤。(2)引入模塊下指定部分內(nèi)容(以函數(shù)為例)①格式:from 模塊名 import 函數(shù)名(多個(gè)函數(shù)之間用逗號(hào)分隔) ②作用:往當(dāng)前程序中引入模塊中指定部分內(nèi)容(函數(shù))。當(dāng)前程序調(diào)用引入的指定函數(shù)時(shí),函數(shù)名前不用指定其所屬的模塊③范例未指定部分函數(shù)沒有引入到當(dāng)前程序,引用無效。如下圖中當(dāng)前程序只指定引用了“module_test.py”文件相應(yīng)模塊中的函數(shù)jia()和函數(shù)jian(),函數(shù)cheng()沒有被指定引入,所以引用無效,報(bào)錯(cuò)“函數(shù)未定義”。典例3 編寫Python程序,實(shí)現(xiàn)如下功能:輸入半徑,輸出球體積(要求四舍五入保留2位小數(shù)),程序代碼如下。在劃線處填上合適的代碼。#下行語(yǔ)句導(dǎo)入math模塊中的圓周率①________________________r=float(input('請(qǐng)輸入半徑:'))②__________________________________print('球體積為:',V)from math import piV=round(4 * pi * r * * 3/3,2)解析 ①導(dǎo)入模塊中的部分內(nèi)容,使用from... import...語(yǔ)句。②從print()函數(shù)的參數(shù)中可知體積由變量V指向;題意四舍五入保留2位小數(shù) round函數(shù);球體積公式中的圓周率使用math模塊中的常數(shù)pi,因?yàn)槭褂胒rom... import...語(yǔ)句導(dǎo)入math中的常數(shù)pi 直接用pi表示圓周率,pi前不跟模塊名math。典例4 編寫Python程序,實(shí)現(xiàn)如下功能:生成一個(gè)三位隨機(jī)整數(shù),輸出其逆序數(shù),程序代碼和界面圖如下。在劃線處填上合適的代碼。import randomn=①________________________print('隨機(jī)數(shù)'+②_________+'的逆序\數(shù)為:',n%10,n//10%10,n//100) random.randint(100,999)str(n)解析 ①程序首行引入random模塊而非模塊下具體的內(nèi)容,所以引用該模塊下的函數(shù)時(shí),需要在函數(shù)名前加上模塊名作為前綴,說明函數(shù)的從屬。生成隨機(jī)三位正整數(shù) 引用randint(a,b)函數(shù),范圍是100~999。②根據(jù)界面圖上的輸出結(jié)果可知?jiǎng)澗€處應(yīng)填入此次隨機(jī)生成的三位正整數(shù)n,由于n參與“+”字符串鏈接運(yùn)算,需要先用str()函數(shù)將n轉(zhuǎn)換為字符串型。典例5 編寫Python程序,實(shí)現(xiàn)如下功能:打開指定位置('D:\狗.jpg')的圖片,并輸出其格式、尺寸和模式信息,程序代碼和界面圖如下。在劃線處填上合適的代碼。①__________________________#引入Image模塊 #下行語(yǔ)句使變量im指向從文件加載的圖片im=②________________________im.show()#打開窗口顯示圖像print(③________________________________) from PIL import ImageImage.open('D:\狗.jpg')im.format,im.size,im.mode解析 結(jié)合程序界圖和題目描述可知print()函數(shù)需要輸出圖像對(duì)象im的3個(gè)屬性值。典例6 (2022杭州八縣市聯(lián)考)有如下Python程序段:import randoma=[1,0,0,0,0]for i in range(1,5):a[i]=random.randint(1,9)if a[i]%2==1: a[i]=a[i]+a[i-1]elif i%2==0: a[i]=a[i]//2執(zhí)行程序后,a列表各元素不可能的是( )A.1,4,2,4,15 B.1,8,3,2,5C.1,2,11,8,2 D.1,8,15,6,4A解析 radom.randint(1,9)隨機(jī)產(chǎn)生1~9之間的整數(shù),第一種情況:產(chǎn)生的是奇數(shù),則當(dāng)前元素值為該奇數(shù)與前一個(gè)元素值之和;情況二:產(chǎn)生的是偶數(shù)并且i為偶數(shù),則當(dāng)前元素值為該偶數(shù)與2的整除值,該值最大值為4;情況三:產(chǎn)生的是偶數(shù),但i為奇數(shù),則當(dāng)前元素值可為2,4,6,8。選項(xiàng)A中第5個(gè)元素的值為14,比前一個(gè)元素值大,應(yīng)由a[i]=a[i]+a[i-1]產(chǎn)生,前一個(gè)元素值為4,則推算出隨機(jī)生成數(shù)應(yīng)為11,但randint(1,9)隨機(jī)產(chǎn)生1~9之間的整數(shù),故選項(xiàng)A錯(cuò)誤。選項(xiàng)B中隨機(jī)生成的整數(shù)可為7,6,2,3,選項(xiàng)C中隨機(jī)生成的整數(shù)可為1,9,8,4,選項(xiàng)D中隨機(jī)生成的整數(shù)應(yīng)為7,7,6,8。典例7 以下關(guān)于模塊說法錯(cuò)誤的是( )A.一個(gè)test.py就是一個(gè)模塊B.任何一個(gè)普通的t.py文件可以作為模塊導(dǎo)入C.模塊文件的擴(kuò)展名不一定是.pyD.運(yùn)行時(shí)會(huì)從制定的目錄搜索導(dǎo)入的模塊,如果沒有,會(huì)報(bào)錯(cuò)異常解析 本題主要考查Python模塊。一個(gè)test.py就是一個(gè)模塊;任何一個(gè)普通的t.py文件可以作為模塊導(dǎo)入;模塊文件的擴(kuò)展名一定是.py;運(yùn)行時(shí)會(huì)從制定的目錄搜索導(dǎo)入的模塊,如果沒有,會(huì)報(bào)錯(cuò)異常,故本題選C選項(xiàng)。C 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫(kù)