Python程序设计实践 教案 实验22 字符串应用.docx
《Python程序设计实践教程》课程教案
课题:字符串应用
教学目的:
解决非数值的问题时主要的操作对象是字符串。
本实验选取几个字符串应用和统计的编程实例。通过学习,使读者掌握字符串的使用方法,尤其是设计字符串程序,进而增强程序设计能力。
课型:新授课
课时:
本章安排2个课时。
教学重点:
重点:掌握字符串的使用方法,尤其是设计字符串程序,进而增强程序设计能力。
教学难点:
难点:教学难点在于帮助学生清晰理解变位词判断、词频统计以及加密解密过程中的复杂逻辑,精准把握字符串操作细节,在处理海量数据时优化算法以提升效率并保障准确性。
教学过程:
教学形式:讲授课,教学组织采用课堂整体讲授和分组演示。
教学媒体:采用启发式教学、案例教学等教学方法。教学手段采用多媒体课件、视频等媒体技术。
板书设计:
本课标题
字符串应用
课次
0.5
授课方式
理论课□讨论课□习题课□其他□
课时安排
2
学分
共2分
授课对象
普通高等院校学生
任课教师
教材及参考资料
1.《Python程序设计实践教程》。
2.本教材配套视频教程及学习检查等资源。
3.与本课程相关的其他资源。
教学基本内容
教学方法及教学手段
课程引入
在日常生活与网络世界里,字符串应用无处不在。你们有没有玩过一种文字游戏,将一个单词的字母重新排列,组成新的单词,这其实就是“变位词”的趣味体现。就像“listen”重新排列能变成“silent”,是不是很有意思?再看新闻报道,想快速知晓一篇文章里哪些词汇出现频率最高,从而把握核心内容,这就得靠词频统计来帮忙。而在信息安全领域,当我们发送机密邮件,为防止内容泄露,会对文字进行加密,接收方再解密读取,这背后依靠的正是字符串加密解密技术。接下来,让我们一同深入字符串应用的奇妙世界,探索变位词、词频统计与加密解密的奥秘,感受它们在实际场景中的强大力量。
参考以下形式:
1.衔接导入
2.悬念导入
3.情景导入
4.激疑导入
5.演示导入
6.实例导入
7.其他形式
实验22字符串应用
实例22-1变位词
1.题目描述
如果一个字符串是另一个字符串的重新排列组合,那么这两个字符串互为变位词,例如said与?dais互为变位词。
在第一行中输入第一个字符串,在第二行中输入第二个字符串。
输出“True”表示是变位词,输出“False”表示不是变位词。
2.题目分析
根据变位词的定义,解决本题的关键是计算第一个字符串中各个字母出现的次数,然后计算第二个字符串中对应字母出现的次数,看相同字母的数量是否一致,若一致则符合条件的次数加1,若符合条件的次数等于字符串长度,则这两个字符串互为变位词。
3.程序代码
#sl22-1.py
a=input()
b=input()
count=0 #符合条件的次数的初始值为?0
foriinrange(len(a)): #从字符串的第一个字母开始循环,到字符串末尾结束
ifa.count(a[i])==b.count(a[i]): #判断相同字母的数量是否一致
count+=1 #若一致,则符合条件的次数加1
ifcount==len(a): #判断符合条件的次数是否与字符串长度相等
print(True)
else:
print(False)
4.运行结果
输入样例如下。
said
dais
输出样例如下。
True
5.思考与讨论
除了一个字母一个字母地比较,也可采用列表的方法,将字符串转变为列表,然后按照?26?个字母的顺序进行排序,再进行比较,代码如下。
defchange(s1,s2):
alist1=list(s1) #将两个字符串转换成两个列表
alist2=list(s2)
count=0
alist1.sort() #对两个列表中的字母进行排序
alist2.sort()
match=True
whilecountlen(s1)andmatch: #对排序后的列表进行逐个字符比较
ifalist1[count]==alist2[count]:
count+=1
else:
match=False
returnmatch
print(change(input(),input()))
6.问题拓展
请看这则算术:ELEVEN+TWO