第3章 第13课 程序强化——字符处理-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)

2025-10-15
| 16页
| 36人阅读
| 3人下载
教辅
浙江良品图书有限公司
进店逛逛

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版必修1 数据与计算
年级 高一
章节 3.3 简单算法及其程序实现
类型 教案-讲义
知识点 顺序结构的程序实现,分支结构的程序实现,循环结构的程序实现
使用场景 同步教学-新授课
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 1.90 MB
发布时间 2025-10-15
更新时间 2025-10-15
作者 浙江良品图书有限公司
品牌系列 精彩三年·高中同步课程探究与巩固
审核时间 2025-07-29
下载链接 https://m.zxxk.com/soft/53249874.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

第13课 程序强化——字符处理(见学生用书P64) ——3.3 简单算法及其程序实现,教材第97~101页 掌握字符串处理的基本思路,并能用程序实现。 1.常见字符表达式 Python表达式 表达式的功能 ch>=”a” and ch<=”z” 判断字符 ch 是否为小写字母 ch>=”A” and ch<=”Z” 判断字符 ch 是否为大写字母 ch>=”a” and ch<=”z” or ch>=”A” and ch<=”Z” 判断字符 ch 是否为字母 ch>=”0” and ch<=”9” 判断字符 ch 是否为数字字符 chr(ord(ch)+32) 实现大写字母转小写字母 chr(ord(ch)-32) 实现小写字母转大写字母 Asc(ch)-Asc(”a”)+1 或者 Asc(ch)-96 ch 的值若为小写字母,实现将字符“a”“b”…“z”转换成数值 1,2,…,26 Asc(ch)-Asc(”A”)+1 或者 Asc(ch)-64 ch 的值若为大写字母,实现将字符“A”“B”…“Z”转换成数值 1,2,…26 2.字符串遍历与数据提取 实现运行界面的常见的方式如下(s=input()): for i in range(len(s)): ch=s[i] if ch>=”0” and ch<=”9”: t=t+ch else: sum=sum+int(t) print(t) t=”” print(”数据之和为: ”+str(sum)) for i in range(len(s)): ch=s[i] if ch>=”0” and ch<=”9”: t=t*10+int(ch) else: sum=sum+t print(t) t=0 print(”数据之和为: ”+str(sum))   有如下Python程序段: s='WE12-30ab!cd@';y=” for i in range(len(s)-1,-1,-1): ch=s[i] if '0'<=ch<='9': y=ch+y elif'a'<=ch<='z': y=y+ch print(y) 执行该程序段后,输出的结果是( C ) A.dcba0321 B.dcba0321EW C.1230dcba D.0321abcd 【解析】 程序实现对字符串逆序读取,并将数字字符逆序拼接到变量y中,即“1230”;将小写字母顺序拼接到变量y中,即“dcba”,程序执行后y为“1230dcba”。 变式1  有如下Python程序段: s='Happy-Day-2021!' m=n=k=0 for i in s: if '0'<=i<='9': m+=1 elif'a'<=i<='z': n+=1 else: k+=1 print(k) 执行该程序段后,输出的结果是( D ) A.2 B.3 C.4 D.5 【解析】 程序实现对字符串依次遍历,并将数字字符的数量累计到变量m中;小写字母字符的数量累计到变量n中;其他字符的数量累计到变量k中,即其他字符有5个。 变式2  有如下Python程序段: shu=””;k=0;qiu=”” x=”394-5-222-60-809” for ch in range(len(x)): if ”0”<=x[ch]<=”9”:    k=k+1    else: shu=x[ch-k:ch] if qiu<shu: qiu=shu+qiu k=0 print(qiu) 执行该程序段后,输出的结果是( B ) A.1203 B.605394 C.809605394 D.809394 【解析】 用k 计算当前数字的位数,当碰到非数字的时候进行累加,累加到累加器的前面并且要求当前字符串比累加器中的字符串大,选项B正确。   有如下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) 执行该程序段后,输出的结果是( D ) A.tEL-885 B.tEL-114 C.TEL-114 D.TEL-885 【解析】 该程序实现如下功能:若ch为数字字符,那么加密后字符的数值和原数字字符的数值相加和为9;若ch为小写字母,那么加密后的字符为原小写字母对应的大写字母;若ch为除数字字符和小写字母外的字符,那么原ch保持不变;结合需加密字符串p='Tel-114',那么按照加密规则,执行该程序段后得到的结果为“TEL-885”。 变式1  2024·北仑中学检测有如下Python 程序段: s=input(”请输入字符串: ”) ans=”” a=[1,2,3] for i in range(len(s)): x=s[i] key=a[i%3] if ”A”<=s[i]<=”Z”:     ans=ans+chr((ord(x)-65+key)%26+65)    else:     ans=ans+x print(ans) 若输入“A1b2D3”,则执行该程序段后,输出的结果是( B ) A.32b1BF B.B1b2F3 C.B3e3F6 D.6F3e3B 【解析】 依次读取原文字符和key,若是大写字母则后移key个位置,其他字符原样保留。其中字母“A”,key为1,转换为“B”;字母“D”,key为2,转换为“F”,选项B正确。 变式2  有如下Python程序段: p=input(”请输入明文字符串(由字母组成): ”) e=”” for i in p:    if ”a”<=i<=”z”:  e+=”L”  i=chr(ord(i)-32)    else:     e+=”U”    s=ord(i)-ord(”A”)    e+=str(s//5)+str(s%5) print(e) 若输入p的值为“Ad”,则执行该程序段后,输出的结果是( A ) A.U00L03 B.U00L70 C.L00U03 D.U0L3 【解析】 字符“A”执行else的语句块,s=0,e=U00;字符“d”执行if的语句块,s=3,e=U00L03,选项A正确。   有如下Python程序段: s='MoreHasteLessSpeed' mx=” pre=0 for i in range(1,len(s)): if ord(s[i])<97: if mx<s[pre:i]: mx=s[pre:i] pre=i print(mx) 执行该程序段后,输出的结果是( A ) A.More B.Haste C.Less D.Speed 【解析】 for循环从第2个位置开始,若s[i]的ASCII码值小于97,结合字符串s,即当s[i]为大写字母时取出字符串s[pre:i],pre的初值为0,故第一次截取出单词More,第二次截取出Haste,第三次截取出Less,要注意最后一个Speed取不到,所以三个单词中的最大值是More,选项A正确。 变式  小明为统计连续小写字母的最长个数,编写了如下Python程序段: s=input() ans=0 for i in range(len(s)): t=s[i] if t>=”a” and t<=”z”: c=c+1 else: print(ans) 上述程序段中加框处可选的代码有: ①c=0 ②c=1 ③if c>ans: ans=c ④if c<ans: c=ans ⑤ans=ans+1 下列选项中,代码顺序正确的是( D ) A.②③① B.①④⑤ C.②④② D.①③① 【解析】 c用来统计连续小写字母的个数,c的初值为0,故①填c=0;ans用来统计连续小写字母的最长个数。从前往后遍历字符串s,提取第i个字符放在t中,若c>ans,更新ans的值,故②填if c>ans:ans=c;若第i个字符非小写字母,则将c清零,重新统计下一个连续小写字母的长度。选项D正确。   2024·平阳中学检测有如下Python程序段: s=”Student Union!” f=[0]*26 i=0 while i<len(s):    if ”a”<=s[i]<=”z”:    f[ord(s[i])-ord(”a”)]+=1    elif ”A”<=s[i]<=”Z”:    i+=1    continue    else:    break    i+=1 for i in range(26):    if f[i]==1:    print(chr(i+ord(”A”)),end=””) 执行该程序段后,输出的结果是( A ) A.DENU B.DENTU C.DEIOU D.denu 【解析】 利用0~25共26个桶来统计小写字符出现的次数,其中f[0]存储字母“a”的个数。遇到小写字母统计个数,遇到大写字母则跳过当次循环,遇到其他字符则循环结束,即只统计了“Student”中的小写字母个数。最后一个for循环,按字母表输出只出现了1次的字母(以大写形式输出),选项A正确。   某网络平台要求新注册用户的密码:8位及以上,至少包含大写英文字母、小写英文字母、数字、指定字符4类字符中的3类。密码设置有5次尝试机会,连续5次失败将不予注册。程序运行界面如图所示: 请回答下列问题。 (1)若用户输入的密码是“Hello202202”,__符合__(选填:符合/不符合)以上要求。 (2)实现该功能的Python程序如下,请在横线处填入合适的代码。 def check_letter(password): #代码略,本函数用于判断password是否含有大、小写英文字母 #如只包含一种返回1,如两种都包含返回2,两种都未包含则返回0 def check_number(password): #代码略,本函数用于判断password是否含有数字字符,如包含返回1,否则返回0 def check_symbol(password): #本函数用于判断password是否含有指定特殊符号,如包含返回1,否则返回0 x=”!@#$%^&*()_+-=<>?,.” #指定字符 c=0 for i in password: if ①__i__in__x__或其他等价答案__:  c=1;break return c try_times=5 password=input('请输入密码: ') while True: strength=check_letter(password)+check_number(password)+check_symbol(password) if②__strength>=3__或其他等价答案____ and len(password)>=8: print('恭喜!密码设置成功。');break else: if try_times<=1: print('尝试次数过多。密码设置失败!') break else: if len(password)<8: password=input('密码长度不足。请重新输入: ') else: password=input('密码强度不合格。请重新输入: ') ③__try_times-=1__或__try_times=try_times-1__或其他等价答案__ 【解析】 (1)长度超过8位,含有数字、大写字母、小写字母,符合要求。 (2)①x字符串为指定字符,i为设置密码中的单个字符,当“i in x”为True,表示该字符属于指定字符;②包含四类字符中的至少三类;③允许尝试次数减一,try_times为允许尝试次数。 变式  2024·温岭中学检测删除字符串中的重复字符。编写一个Python程序,功能如下:由键盘输入字符串,执行程序后,输出处理后的结果。程序运行界面如图所示: 请在横线处填入合适的代码。 x=input('请输入原始字符: ') ①__n=len(x)__ s=x[0]   #存放未重复字符 for i in range(1,n): flag=0 if ②__x[i]__in__s__:  #判断是否为重复字符   flag=1 if ③__flag==0__:   s=s+x[i] print('处理后的结果为: ',s) 【解析】 ①n存放输入字符串x的字符长度;s为未重复字符组成的字符串。②判断是否为重复字符,即判断x[i]是否在s中,若在,则重复。③flag为0表示未重复,为1表示重复,若未重复则将x[i]存入字符串s中。 |随|堂|检|测| 1.有如下Python程序段: s=”Good-Luck-2022!” n=0;m=0;k=0 for i in range(len(s)): ch=s[i] if ch>=”0” and ch<=”9”:  m=m+1 elif ch>=”a” and ch<=”z”: n=n+1 else: k=k+1 执行该程序段后,变量k的值为( D ) A.2 B.3 C.4 D.5 【解析】 遍历字符串,判断不同类型字符的个数,m为数字字符的个数,n为小写字母的个数,k为大写字母或其他符号的个数。 2.有如下Python 程序段: s=input(”请输入要处理的数据: ”) t=0;sum=0 fori in s: if ”0”<=i<=”9”: t=t*10+int(i) elif”A”<=i<=”Z”: sum+=t else: t=0 print(sum) 若输入的数据为“321AqC56”,则执行该程序段后,输出的结果是( B ) A.642 B.321 C.698 D.377 【解析】 提取字符串中的数值,并进行累加,其中“321”提取后的结果为321。数字串结束后,再遇到大写字母,才会累加,但不初始化t的值;再遇到小写字符时,t=0;“56”之后没有字母,不会累加,选项B正确。 3.2024·永嘉中学检测有如下Python程序段: s=”accdbbdca” res=”” for i in s:    if len(res)==0 or i!=res[len(res)-1]:  res+=i    elif i==res[len(res)-1]:  res=res[len(res)-1]+res[:len(res)-1] print(res) 执行该程序段后,输出的结果是( C ) A.aca B.acdb C.dbcaca D.bcacdbdca 【解析】 执行过程如下,选项C正确。 i a c c d b b d c a res a ac ca cad cadb bcad dbca dbcac dbcaca 4.有如下Python 程序段: s='1234567' n=len(s) k=-1 for i in range(n-1): k=(k+3)%len(s) s=s[k+1:]+s[:k] k=-1 print(s) 执行该程序段后,输出的结果是( C ) A.1 B.3 C.4 D.7 【解析】 执行过程如下,选项C正确。 i 0 1 2 3 4 5 k 2 2 2 2 2 0 s 456712 71245 4571 145 14 4 5.2024·新昌中学检测某同学设计了一种加密算法,加密规则如下: ①若待加密字符中出现大写字母,就将其转换为它在字母表中的次序,如A→1,B→2,…,Y→25,Z→26。 ②若待加密字符中连续出现小写字母,将这些小写字母反向添加进密码中,如aeiou→u o i e a。 ③若待加密字符中出现数字,那么将数字0~9分别转换为字母A~J,如0→A,1→B,…,9→J。 ④所有的字符之间用空格隔开。 例如: 实现该功能的Python程序如下: s=input(”输入要加密的字符串: ”) ans=”” temp=”” for ①__i__in__s__: if 'a'<=i<='z': temp=i+” ”+temp else: ②__ans=ans+temp__ temp=”” if 'A'<=i<='Z': t=str(ord(i)-65+1) elif '0'<=i<='9':  t=③__chr(int(i)+65)__或chr(int(i)+ord('A'))__   print(ans) 请回答下列问题。 (1)若待加密字符串为ThuVMe50,则执行该程序后,输出的结果是__20__u__h__22__13__e__F__A__。 (2)程序中两处加框代码出现相同的错误,请改正:__ans=ans+t+”__”__。 (3)请在横线处填入合适的代码。 【解析】 (2)所有字符之间需要用空格隔开。 (3)①结合“'a'<=i<='z'”可知,输入的字符串中每个字符都要转换;②逆序的小写字符加入结果;③将数字转换为ASCII字符。 温馨提示:请完成高效作业13 ) 学科网(北京)股份有限公司 $$

资源预览图

第3章 第13课 程序强化——字符处理-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
1
第3章 第13课 程序强化——字符处理-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
2
第3章 第13课 程序强化——字符处理-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
3
所属专辑
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。