内容正文:
循环结构的程序实现
课标梳理
教材重点 课标要求 学业质量水平
循环结构 掌握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 i