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

高中信息技術 學考復習 第3章 算法的程序實現 課時11 循環結構的程序實現 課件(共31張PPT)

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

高中信息技術 學考復習 第3章 算法的程序實現 課時11 循環結構的程序實現 課件(共31張PPT)

資源簡介

(共31張PPT)
第3章
課時11 循環結構的程序實現
信息技術
課標梳理·微知著
教材重點 課標要求 學業質量水平
循環結構 掌握for語句以及while語句的使用方法 2-2
教材研析·固基礎
循環結構流程圖
首先,為循環變量設置初始值,然后判斷循環條件。
若條件為真,則執行循環體同時更改循環變量、繼續循環;否則結束循環。
1
循環結構的程序實現
1.程序實現:通過for語句和while語句來實現。
2.for語句
(1)格式
for <變量> in <序列>:
<循環體>
(2)通過遍歷序列中的元素實現循環,并通過序列的元素數量來控制循環次數 循環次數等于序列的元素個數;從第1個元素開始,每次循環從序列中按序取1個元素作為本次循環的變量值,并執行一遍循環體中的代碼。
(3)注意點
①序列后的冒號不要遺忘
②循環體縮進
(4)遍歷字符串
每次循環,變量依次指向字符串中的一個字符。格式如下:
for<變量>in<字符串>:
<循環體>
典例1 有如下Python程序段:
s='為學須先立志'
for i in s:
print(i,end=',')
執行上述代碼,輸出的結果為________________。
為,學,須,先,立,志, 
解析 for遍歷字符串s中的每個字符,且每次以,結束。
典例2 將字符串s中的大寫英文字母轉換成小寫字母,實現上述功能的Python代碼如下:
s=″Hello World!″
s2=″ ″
for ①__________:
if'A'<=ch<='Z':
s2=②________________#大寫字母轉換成小寫字母ord('A'):65
ord('a'):97
else:
s2=s2+ch
print('轉換成小寫字母:',s2)
請回答下列問題:
ch in s
s2+chr(ord(ch)+32)
(1)將劃線處代碼補充完整。
(3)請給出②處的另外一種表達式。
(2)for循環體中的if語句執行總次數等于( )
A.s串中大寫字母的個數
B.s串中小寫字母的個數
C.s串中字符個數
D.s串中大小寫字母的總數
C
s2+chr(ord(ch)-ord('A')+ord('a'))
(4)請寫出用for循環逆序輸出字符串s中小寫字母的代碼。
s2=″ ″
for ch in s[::-1]:
 if 'a'<=ch<='z':
  s2+=ch
print(″逆序輸出小寫字母:″,s2)
解析 (1)①枚舉s中的每個字符ch;②大寫英文字母的ASCII碼值比相應的小寫字母ASCII碼值小32,因此其表達式如上。(2)if語句是在整個循環語句中的,因此是s中全部的字符數。
典例3 (2022浙江7月學考)某Python程序如下:
p=″Tel-114″
c=″ ″
for ch in p:
if ch>=″0″ and ch<=″9″:
 c+=str(9-int(ch))
elif ch>=″a″ and ch<=″z″:
c+=chr(ord(ch)-ord(″a″)+\ord(″A″))
else:
c+=ch
print(c)
程序運行后,輸出的結果是( )
A.tEL-885
B.tEL-114
C.TEL-114
D.TEL-885
解析 由代碼可知,若是數字字符,則用9減去該數字,若是小寫字母,則轉換為相應的大寫字母,若是其他情況則不進行任何處理,直接按順序連接到變量c。因此當輸入字符串為“Tel-114”,最后輸出字符串為“TEL-885”,故選D。
D
(5)遍歷列表
每次循環,變量依次指向列表中的一個元素。格式如下:
for<變量>in<列表>:
<循環體>
(6)range函數
①作用:指定序列中元素的個數和范圍。
②格式:如下
range(start,stop,step)
③參數
<1>start:計數從start開始。默認是從0開始。例如range(5)等價于range(0,5)。
典例4 有如下Python程序段:
x=0
for i in range(1,9,2):
x=x+i
該程序段執行后,變量x的值是( )
A.9 B.16 C.25 D.36
解析 本題考查循環結構程序求值。for循環語句中的一個重要部分即步長2,隨著每一次循環的執行,循環變量都要在[初值,終值]的范圍內增加或減少,直至循環結束。題中循環變量i的值在滿足[1,8]范圍內的分別是1、3、5、7,通過循環體“x=x+i”語句將i的值不斷累加到變量x上,最后得到x的值為16。
B
典例5 有如下Python程序段:
s=0
for i in range(5,________,-1):
s=s+1
若要使語句s=s+1執行10次,則循環變量i終值應為( )
A.-4 B.-5
C.-6 D.-7
解析 本題考查循環結構。模擬后可知循環應該到-5,-4~0共5次,1~5共5次。故選B。
B
(7)遍歷整數序列
①若for語句遍歷的序列中的元素為有序整數,則可以利用內建函數range()來創建。
②每次循環,變量依次指向序列中的一個整數。格式如下:
for變量in range(start,stop,step):
<循環體>
典例6 (2023浙江7月學考)某Python程序如下:
a=input(″輸入數字字符串:″)
s=″ ″
flag=1
for i in range(0,len(a)-1,2):
d1=int(a[i])
d2=int(a[i+1])
t=d1+flag d2
if t<0:
t+=10
elif t>=10:
t-=10
s=str(t)+s
flag=-flag
if len(a)%2==1:
s+=a[len(a)-1]
print(s)
程序運行時,若輸入“48135”,則輸出的結果是( )
A.528
B.582
C.825
D.285
C
解析 由代碼可知,將字符a中的數字每兩個字符為一組進行分組處理,t=d1+flag*d2,且flag的值將變號。然后將t逆序連接到字符s中。最后不能成對的一個字符順序連接到字符串s中。計算如下:第一組,flag=1,4+8= 12,因此t=2,s=“2”;第二組,flag=-1,1-3=-2,所以t=8,故s=“82”。最后一個字符“5”,順序進行連接,故s=“825”,因此本題選C。
3.while語句
(1)格式
while <條件>:
<循環體>
(2)執行過程:首先判斷條件是否為真,若條件為真,則執行一次循環體,再次判斷條件是否為真,若仍為真,則再執行一次循環體,以此類推,直到條件為假時退出while語句。
(3)作用:已知次數的循環用for(循環次數即遍歷序列的元素個數)。在循環執行前不知道其需要執行的次數時用while循環。
典例7 要將1個十進制數轉二進制數。實現上述功能的Python程序如下,請在劃線處填上合適的代碼。
d=int(input('請輸入1個十進制正整數:'))
#方法:除二取余(循環執行直至被除數為0)
ans=''
b=d
①________________________
y=b % 2
②________________________
ans=str(y)+ans
print('十進制數',d,'的二進制值為:',ans)
while b!=0:
b=b // 2
解析 ①十進制轉二進制前不知道需要除二取余幾次才能得到結果 用while不用for。除二取余終止的條件是被除數為0 反之只要被除數不為0,則繼續除二取余(循環) 滿足條件b!=0(被除數不為0)時循環。②每次循環得到本次除二取余的余數后,要為下次循環做好準備 更新下次除二取余的被除數的值 用當前的被除數除以2取整數部分得到b=b // 2。
4.break和continue語句
(1)while循環在條件為假時結束,for循環在遍歷完序列后結束。若循環條件仍然為真或者序列沒有遍歷完時,想要強行跳出循環,可以用break語句。
(2)continue語句,功能:結束當前的當次循環,但不跳出循環結構,繼續判斷下一次執行循環的條件是否成立。
典例8 判斷一個正整數是否為素數(在大于1的自然數中,除了1和其本身以外,不能被任何一個數整除)的Python程序如下,請在劃線處填上合適的代碼。
num=int(input('請輸入1個十進制正\整數:'))
cs=2
flag=False
while ①________________:
if ②___________________:
 flag=True
 ③__________
cs=cs+1
if ④________________:
print(num,'是素數')
else:
print(num,'不是素數')
cs<=num-1
num % cs==0:
Break
flag==False
解析 ①除數的范圍是2 num-1 ②循環內部判斷數num是否能被當前除數cs整除 num % cs==0 ③只要num能被2 num-1之間任何一個除數cs整除,就不是素數,后面的除數不用再驗證了,所以要終止循環 break ④循環中被整除 num不是素數時,flag True,所以flag為True代表著不是
素數。
5.循環嵌套
循環結構中,允許在一個循環體里面嵌入另一個循環。
典例9 輸出當前序列中所有素數的Python程序如下,請在劃線處填上合適的代碼。
b=int(input('請輸入一個正整數作為\序列起點:'))
e=int(input('請輸入一個正整數作為\序列終點:'))
①________
for i in range (②________________):
cs=2
flag=False
#以下while循環(內循環)嵌套在for循環(外循環)中
ans=''
b,e+1,1(或b,e+1)
while cs <=i - 1: 
if i%cs==0:
 flag=True
 break
cs=cs + 1
if flag==False:
 ans=ans+' '+str(i)
print(b,'~',e,'中的素數有:',ans)
解析 ①變量在使用前要先賦值 結果字符串ans在循環前要先賦值空串。②題目要檢測序列中每個數是否是素數,所以要遍歷序列中的每個數 step為1;start為輸入的起點b;遵循“前閉后開”規則,stop為輸出的終點e的后一個數 e+1。
典例10 將一張長a厘米、寬b厘米的長方形紙沿直線剪開,剪出一個正方形,再在剩下的部分上繼續裁剪,每次只剪一刀,但必須剪出一個正方形。這樣最多能剪幾次 (正方形邊長必須是整厘米數)
n=int(input(″請輸入長:″))
m=int(input(″請輸入寬:″))
c=0
方框中的代碼將會是以下語句:
①n!=m ②n=m ③nm
實現程序要求的正確選項是( )
A.①③  
B.①④
C.②③
D.②④
解析 本題的算法思想是:當長寬不同時,可以繼續剪,原則是較長邊減較短邊,直到兩條邊相等為止,退出循環。因此答案為B。
B

展開更多......

收起↑

資源預覽

<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. 主站蜘蛛池模板: 万山特区| 漯河市| 普定县| 阿坝县| 满洲里市| 普陀区| 徐水县| 商南县| 鲁山县| 景泰县| 嘉禾县| 林口县| 兴宁市| 泸水县| 新晃| 新闻| 云龙县| 汉川市| 龙南县| 商丘市| 郎溪县| 绍兴市| 东乡族自治县| 芜湖市| 木里| 宜阳县| 贵德县| 阳春市| 敦化市| 红原县| 仙游县| 通化县| 通山县| 株洲市| 西乡县| 伊宁市| 绥江县| 勐海县| 乐昌市| 湘潭市| 鄂托克前旗|