中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2025屆信息技術一輪復習講義:專題5 函數和模塊

資源下載
  1. 二一教育資源

2025屆信息技術一輪復習講義:專題5 函數和模塊

資源簡介

專題5 函數和模塊
學業要求 知 識 點 學業水平等級
1.掌握自定義函數的構造和調用方法 2
2.掌握模塊的導入方法和常用函數的應用 2
知識點一 自定義函數
【知識梳理】
1.在算法的程序實現過程中,也經常根據具體問題的特點將其分解成若干個________或者借助所用程序設計語言的特性來完成問題的解決。
2.Python主要運用________、________等方式實現模塊化程序設計,為算法的程序實現帶來極大的便利。
3.定義函數的語法如下:
def函數名(參數集合):
<函數體>
[return________]
4.函數名的命名規則和變量名一樣。完成函數的構造后,在程序中就可以根據需要________該函數。
【經典案例】
自定義函數相當于一個小的程序塊,函數的參數相當于輸入的信息,函數的形參和實參必須一一對應,函數的返回值相當于輸出信息。一個函數體內可以有多條return語句,當執行某條返回語句后,結束自定義函數運行,返回主程序。
自定義函數調用的過程分為把實參賦值給形參、運算獲得結果、返回運算結果三個步驟。
【例1】 編寫一個自定義函數實現判斷字符串s是否是回文字符串。
算法思想:采用雙指針分別指向首尾字符,若兩者相同,依次向中間靠攏。
def hw(s):
i=0
j=len(s)-1
while ①________:
if ②________:
     return False
i+=1
j-=1
return True
s1=input('請輸入字符串s:')
t=hw(s1)
if ③________:
print(″字符串″+s1+″是回文字符串!″)
else:
print(″字符串″+s1+″不是回文字符串!″)
思維點撥
明考向 本題自定義函數的應用
精點撥 ①指針i和j分別指向字符串s的首和尾,在兩端各取一個字符進行比較,若i==j意味著該字符串長度為奇數,中間位置可以不用比較,若字符串長度為偶數,最后一次比較完后,i將超出j的值。②若兩端各取一個字符,取出的字符不相等,返回假。③調用自定義函數,將函數的值賦給t,那么t可能是True或False
聽課筆記:____________________________________________________________
______________________________________________________________________
______________________________________________________________________
【變式1】 將k(2<=k<=16)進制數s轉換為十進制數n。
算法思想:十進制數345可以表示為3*10^2+4*10^1+5*10^0,每個位上數x表示有x個位權,把所有位上數字與位權的進行累加,得到該數的十進制數大小。實現該自定義函數如下,請將空白處填寫完整。
def ktod(s,k):
sn={″A″:10,″B″:11,″C″:12,″D″:13,″E″:14,″F″:15}
ans=0
for i in ①________:
if ″0″<=s[i]<=″9″:
     t=int(s[i])
else:
     ②________
③________
return ans
shu=input(″輸入需轉換的數:″)
k=int(input(″輸入轉換數據的進制:″))
n=ktod(shu,k)
print(str(k)+″進制數″+shu+″轉換成十進制數后為:″+str(n))
【例2】 多選題評分,評分標準:全部選對得2分,選對但不全的得1分,不選或有選錯的得0分。編制的自定義函數如下,其中x表示要判斷的答案,y表示標準答案。
選對但不全的答案判定方法為:遍歷判斷的答案每一個選項,若該選項在標準答案中存在則進行計數count,否則直接退出遍歷。根據count的值與判斷答案的長度是否相等來決定是選對但不全。
def df(x,y):
if x==y:
①________
else:
count=0
for i in x:
     if i in y:
       count+=1
     else:
       ②________
if ③________:
     ans=0
else:
     ans=1
return ans
da=input(″請你輸入你的答案:″)
bzda=″ACD″
n=df(da,bzda)
print(″該題得分為:″+str(n))
思維點撥
明考向 本題考查自定義函數的應用
精點撥 ①要判斷的答案x和標準答案y相同,得2分。②遍歷判斷的答案每一個選項,判斷該選項在標準答案中是否存在。若不存在,說明有錯選的選項。③若全部選項在標準答案中均能找到,則count的值就是len(x),若有找不到的,就是存在錯選的,得0分,若沒填涂,也得0分
聽課筆記:_____________________________________________________________
______________________________________________________________________
______________________________________________________________________
【變式2】 工作人員手中有人民幣100、50、20、10和1元6個幣種,輸入一個金額n,按最大票面優先兌換的原則,輸出相應的人民幣及張數。
def dh(je):
rmb=[100,50,20,10,1];ans={}
i=0
while ①________:
if je>=rmb[i]:
     ②________
     je=je%rmb[i]
else:
     ③________
return ans
je=int(input(″請輸入兌換的人民幣:″))
t=dh(je)
for i in t:
print(″面值為″+str(i)+″數量為:″+str(t[i]))
知識點二 模塊的導入和應用
【知識梳理】
1.Python內置模塊:數學運算________、生成隨機數________、圖像________。
2.Python其他模塊:用于實現部分操作系統功能(可用于文件、目錄等操作)的________,與時間處理有關的________,可實現科學計算、數據可視化的________________,用于多媒體開發和游戲軟件開發的________,支持圖形處理的________等。
3.在Python中,把一組函數放到一個.py文件里,這個文件就稱為________。
4.使用________語句或________語句導入Python內置的模塊和來自第三方的模塊,將能使用其中的函數,如________和________函數。
【經典案例】
模塊是在函數和類的基礎上,將一系列相關代碼組織到一起的集合體。在Python中,一個模塊就是一個擴展名為.py的源程序文件。導入模塊一般采用import語句,import語句的語法:import模塊名,若只希望導入模塊中指定的一部分,可以使用from...import語句,其語法如下:From模塊名import函數名。要求掌握模塊的導入方法及常見模塊的應用,如Random模塊,Math模塊,Image模塊等等。
【例1】 函數random的方法如下表所示:
名稱 含義
random.choice(seq) 從序列seq的元素中隨機挑選一個元素
random.sample(a,b) 從序列a中隨機截取b個長度的子序列
編寫程序實現如下功能:隨機產生3門不重復的選課科目,輸出其對應的選課人數。
import random
subject=['政治','歷史','地理','物理','化學','生物','技術']
①________
print(sub)
number={'政治':307,'歷史':219,'地理':396,'物理':170,'化學':116,'生物':265,'技術':225}
num=[]
for x in sub:
②________
print(num)
上述程序段中劃線處可選的語句為(  )
A.①sub=random.sample(subject,3) ②num.append(number[x])
C.①sub=random.choice(subject,3) ②num.append(number[x])
B.①sub=random.sample(subject) ②num.append(x)
D.①sub=random.choice(subject) ②num.append(x)
思維點撥
明考向 本題考查隨機函數及字典的綜合應用
精點撥 sample方法從序列a中隨機截取b個長度的子序列,而choice方法只能隨機挑選一個序列。輸出其對應的選課人數,該人數保存在字典number,根據鍵x取出相應的值
聽課筆記:_____________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
【變式1】 有如下Python程序段:
import random
n=5
data=[i+1 for i in range(n)]
random.shuffle(data) #將序列的所有元素隨機排序
flag=True;i=0
while ix=data[i]
for j in range(i+1,n):
if data[j]     if data[j]       x=data[j]
     else:
       flag=False
       break
i+=1
若執行該程序段后flag值是True,則輸出的data值不可能的是(  )
A.[2,3,4,1,5] B.[4,5,2,3,1]
C.[1,3,2,5,4] D.[1,2,4,3,5]
【例2】 小明用Python語言中對大小為100*100像素的圖像“上.jpg”(如圖所示)進行簡單處理,部分代碼如下:
img=Image.open(″上.jpg″)
im=np.array(img.convert(″L″)) #轉換成數字矩陣
rows,cols=im.shape
for i in range(rows):
for j in range(cols):
if j%10==0:
     im[i,j]=0
程序執行后的圖像效果是(  )
思維點撥
明考向 本題考查圖像模塊的應用。語句rows,cols=im.shape的功能是讀取圖像的寬度和高度。外循環是寬度,即按行遍歷圖像,每讀取完一行中所有列,再讀取下一行。當是列為10的倍數時,將像素值修改為0,即改為黑色
精點撥 A 當行的值是10的倍數時,將像素置為黑色
B 實現上下(垂直)翻轉的效果
C 實現左右(水平)翻轉的效果
D 當列的值是10的倍數時,將像素置為黑色
聽課筆記:_____________________________________________________________
______________________________________________________________________
______________________________________________________________________
【變式2】 將圖形轉化為文本。應用Python中的Image模塊后,將字母圖片文件″OK.jpg″處理成由0,1表達的文本文件“OK.txt”。字母圖片如圖a所示,運行后文本文件結果如圖b所示。
實現該功能的Python程序如下,請完成劃線處的程序代碼。
from PIL import Image
def judge(R,G,B):
gray=0.299*R+0.587*G+0.114*B
#轉成灰度值
color=gray/132
return color
img=Image.open(″OK.jpg″)
pix=img.load()
file=open(①________,″w″) #讀寫方式打開文本文件
width=img.size[0]
②________
for i in range(height):
line=″″
for j in range(width):
R,G,B=pix[j,i] #根據像素坐標獲得該點的RGB值
③________
if color==0:
     line+=″1″
    else:
     line+=″0″
file.write(line) #寫入OK.txt文件
file.write(″\\n″)
file.close()
1.有Python的程序代碼如下:
def change_c(s):
if ″a″<=s<=″z″:
s=chr(ord(s)-32)
return s
ss=input(″請輸入一串英文字母:″)
n=len(ss)
ans=″″
for i in range(n):
c=change_c(ss[i])
ans=c+ans #①
print(ans)
現執行該程序,輸入″abcDEF″,下列說法正確的是(  )
A.函數change_c()被調用了3次
B.函數change_c的功能是將小寫字母變成大寫字母
C.輸出的內容為″ABCDEF″
D.將①所在語句改為″ans+=c″程序功能不變
2.有如下Python程序段:
def fibres(n):
a,b=1,1
for i in range(n-1):
a,b=b,a+b
return a
print(fibres(9))執行該程序段,輸出顯示的結果為(  )
A.21 B.34
C.55 D.89
3.以下Python程序:
def f(list):
m=list[0]
for i in range(1,len(list)):
if ①________:
     m=list[i]
return m
s=[4,5,2,6,5,8]
print(f(s))
執行后,結果為2,橫線處的代碼為(  )
A.m>list[i] B.mC.m==list[i] D.m!=list[i]
4.某加密算法程序段如下所示:
def jiami(x):
if ″A″<=x<=″Z″:
y=chr(ord(x)+32)
elif ″0″<=x<=″9″:
y=str((int(x)+1)%10)
else:
y=x
return y
mingwen=input(″請輸入明文″)
miwen=″″
for x in mingwen:
miwen=miwen+jiami(x)
print(″密文為:″,miwen)
輸入“Abc@789”并運行程序,輸出結果是(  )
A.abc8910 B.abc@890
C.ABC678 D.aBC@789
5.有如下Python程序段:
def delstr(s,m):
return s[0:m]+s[m+1:]
s=″Welcome″
i=0
while i<=len(s):
s=delstr(s,i)
i+=2
print(s)
執行該程序段后,輸出的結果為(  )
A.ecm B.elome
C.elco D.elom
6.體重指數(BMI)計算公式為體重/身高^2(單位:千克/米^2)。高一年級學生各個等級的單項評分表如下表所示:
等級 低體重 正常 超重 肥胖
男生 ≤16.4 16.5~23.2 23.3~26.3 ≥26.4
女生 ≤16.4 16.5~22.7 22.8~25.2 ≥25.3
小王編寫了計算BMI指數(四舍五入保留兩位小數)和測試評價等級的自定義函數。實現上述功能的Python程序如下,請在劃線處填入合適的代碼。
def bmi(x,y): #根據體重x,身高y,計算BMI指數,四舍五入保留兩位小數
return ①________
def dj(bmi,xb): #根據bmi指數值,分別計算男生和女生的等級。
if bmi<=16.4:
return 1
elif xb==″男″ and bmi<=23.2 or xb==″女″ and bmi<=22.7:
return 2
elif xb==″男″ and bmi<=26.3 or xb==″女″ and bmi<=25.2:
return 3
else:
②________
sg=float(input(″請輸入你的身高:″))
tg=float(input(″請輸入你的體重:″))
bz={3:″超重″,4:″肥胖″,1:″偏瘦″,2:″標準″}
③________
print(″小王是男生,他的BMI指數為″,zs)
print(″他的體型等級為:″,④________)
7.編寫一個自定義函數實現用戶的登錄,用戶最多有3次可以嘗試輸入用戶名和密碼的機會。
def login(a,b,u): #在字典u中判斷用戶名a是否存在,密碼b是否正確
if ①________:
if ②________:
     print(″密碼不正確″)
     return False
else:
     print(″登錄成功″)
     ③________
else:
print(″帳號不正確″)
return False
u={″cgm″:″sd@1″,″cgl″:″&dd5″,″cjm″:″##22sd″,″1bh″:″12sa″,″1js″:″sd22!″} #系統中存在的用戶名
trytime=3
while trytime>0: #有3次機會可以輸入用戶名和密碼
user=input(″請輸入你的用戶名:″)
psd=input(″請輸入你的密碼:″)
if ④________:
break
else:
print(″你還剩下″,trytime-1,″次機會可以輸入密碼!″)
⑤________
8.函數random的方法如下表所示:
名稱 含義
random.choice(seq) 從序列seq的元素中隨機挑選一個元素
random.sample(a,b) 從序列a中隨機截取b個長度的子序列
編寫程序實現如下功能:隨機產生3門不重復的選課科目,輸出其對應的選課人數。
import random
subject=['政治','歷史','地理','物理','化學','生物','技術']
①________
print(sub)
number={'政治':307,'歷史':219,'地理':396,'物理':170,'化學':116,'生物':265,'技術':225}
num=[]
for x in sub:
②________
print(num)
上述程序段中劃線處可選的語句為(  )
A.①sub=random.sample(subject,3) ②num.append(number[x])
B.①sub=random.sample(subject) ②num.append(x)
C.①sub=random.choice(subject,3) ②num.append(number[x])
D.①sub=random.choice(subject) ②num.append(x)
9.有如下Python程序段:
from random import randint
s=″Infomation″
for i in range(2):
k=randint(0,2)*2+1 #randint(0,2)隨機產生[0,2]之間的整數
s=s[:k]+s[k+1:]
執行該程序段后,變量s的值不可能是(  )
A.″Iomation″ B.″Inmation″
C.″Infation″ D.″Ifoation″
10.英語單詞″illustriousness″意思是優秀,有如下Python程序段:
import random
s=″illustriousness″
for i in range(4):
k=random.randint(0,4)*random.randint(0,3)
print(s[k],end=″″)
執行該程序后,輸出的結果不可能是(  )
A.uiso B.iiii
C.tree D.siur
11.某Python程序段如下:
import random
fibo=[1]*11
for i in range(2,11):
fibo[i]=fibo[i-1]+fibo[i-2]
n=random.randint(1,10)
print(fibo[n])
運行該程序段,輸出結果不可能是(  )
A.1 B.21
C.35 D.89
專題5 函數和模塊
知識點一
知識梳理
1.子問題 2.函數 模塊 3.函數值 4.調用
經典案例
例1 ①i變式1 ①range(len(s)) ②t=sn[s[i]] ③ans+=t*k**(len(s)-i-1)
解析 本題考查自定義函數的應用。①從表達式s[i]來看,需遍歷字符串s的各個位置。②不是數字就是A-F的字母,需在字典sn中取出相應的值。采用按權展開相加的方法,將各個位的數字與位權的乘積進行累加。
例2 ①ans=2 ②break ③count變式2 ①je>0 ②ans[rmb[i]]=je//rmb[i] ③i+=1
解析 本題考查自定義函數的應用。①je表示要兌換的人民幣,每兌換相應的幣種,要減去相應的金額,當金額為0時結束兌換。②從輸出語句來看,字典中存儲的人民幣的幣種和兌換的數量,因此當條件je >=rmb[i]滿足時,兌換相應的幣種并寫入字典中。③若不能兌換,則換一下幣種進行兌換。
知識點二
知識梳理
1.Math模塊 Random模塊 Image模塊 2.OS模塊 Time模塊 Numpy和Matplotlib Pygame模塊 tkinter 3.一個模塊 4.import from-import Sqrt Random
經典案例
例1 A
變式1 B [本題考查隨機數的應用。列表data初始值是1~5間的隨機整數。遍歷data數據,若data[i]比后面的數data[j]大,更新x的值;若data[j]大于等于x,則將flag的值置為False,結束程序。B選項當i=0,j=2時,此時x被更新為2,接下去當j=3時,滿足條件data[j]x,因此flag被賦值為False,且直接退出循環。]
例2 D
變式2 ①″OK.txt″ ②height=img.size[1] ③color=judge(R,G,B)
解析 本題考查Image模塊的應用。①中讀取文件名″OK.txt″。②中語句width=img.size[0]獲取圖像寬度,循環中for i in range(height)要求圖像的高度。③中未對color賦值,調用自定義函數,返回0或1。
當堂過關檢測
1.B [本題考查自定義函數的應用。從代碼中可得自定義函數change_c的作用為返回形參s對應的大寫字母。而后在執行程序中遍歷字符串ss,多次調用自定義函數,并且將每次遍歷到的字符經過轉換后連接到原有的字符之前(倒序),最后輸出。A選項該程序輸入的內容為″abcDEF″長度為6,因此自定義函數被調用了6次;B選項正確;C選項最終輸出的內容為FEDCBA;D選項將①改為“ans+=c”后結果是順序輸出,與原意不同。]
2.B [語句a,b=b,a+b的作用是a=b,b=a+b。該自定義函數的功能是計算斐波那契數列。從第3項開始的值依次為2,3,5,8,13,21,34。]
3.A [從函數運行結果來看,查找最小值。遍歷列表list,若其值比m小,則更新m的值。]
4.B [函數的功能是對字符串每個字符進行加密,如果是大寫,轉換成對應的小寫字母,如果是數字,循環后移一位。其他不變,依次連接在后面。]
5.D [自定義函數的功能:在字符串s中刪除索引位置為m的字符。i值依次為0,2,4,6,字符串s的值依次為elcome、elome、elom。]
6.①round(x/y**2,2) ②return 4 ③zs=bmi(tg,sg) ④bz[dj(zs,″男″)]
解析 本題考查自定義函數編寫和調用。①處根據體重x,身高y,計算BMI指數,四舍五入保留兩位小數。②處指肥胖的情況。③處調用bmi函數,把tg和sg分別傳給x和y。④dj函數返回1~4之間的數值,在字典bz中可以查找每個數值代表的文本信息。
7.①a in u ②b!=u[a] ③return True ④login(user,psd) ⑤trytime-=1
解析 本題考查自定義函數編寫和調用。①在字典u中判斷用戶名a是否存在,密碼b是否正確,首先判斷a是否在字典b中,若存在用戶u,則該用戶的用戶名是鍵,密碼是值u[a],因此②處答案為b!=u[a]。當兩者均正確時,需返回True。④處調用login函數,把用戶名user和密碼psd分別傳至自定義函數中。⑤處將改變trytime的值,嘗試的次數將減少一次。
8.A [本題考查隨機函數及字典的綜合應用。sample方法從序列a中隨機截取b個長度的子序列,而choice方法只能隨機挑選一個序列。輸出其對應的選課人數,該人數保存在字典number,根據鍵x取出相應的值。]
9.B [語句s=s[:k]+s[k+1:]的功能是去除該字符串索引k位置上字符。循環2次,每次產生一個0至5之間的奇數k,接著去除k位字符。A選項″Infomation″→″Ifomation″→″Iomation″,k值均為1。B選項″Infomation″→″Infmation″→″Inmation″,k值依次為3和2,2不可能產生。C選項″Infomation″→″Infmation″→″Infation″,k值均為3。]
10.C [k的值為0至4之間的數乘以0至3之間的數,[0,4]*0值均為0,[0,4]*1值依次為0、1、2、3、4,[0,4]*2值依次為0、2、4、6、8,[0,4]*3值依次為0、3、6、9、12,因此不可能產生5,7,10,11,即字符中不可能包含t。]
11.C [本題考查列表及斐波拉契數列的相關知識。斐波拉契數列:1,1,2,3,5,8,13,21,34,55,89,144…n為該數列第2至第11項中隨機一項,不可能為35,選C。]

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 弋阳县| 九龙坡区| 鹿邑县| 盘山县| 什邡市| 同心县| 宕昌县| 渝中区| 德江县| 绵竹市| 准格尔旗| 木里| 瑞安市| 日喀则市| 柘城县| 宝坻区| 株洲市| 丹棱县| 鲜城| 通州市| 汕尾市| 平安县| 涪陵区| 贞丰县| 道孚县| 大邑县| 宁津县| 古田县| 绥滨县| 尼勒克县| 天峨县| 锡林郭勒盟| 石渠县| 泰兴市| 临潭县| 浮山县| 绥芬河市| 上蔡县| 永春县| 济南市| 海城市|