第8课 字符串2——字符串应用-【精彩三年】2024-2025学年高中信息技术选择性必修1课程探究与巩固Word教参(浙教版2019)
第8课 字符串2——字符串应用(见学生用书P61)
——3.1 字符串,教材P64~73
1.掌握字符串的基本操作,并能编程实现。 2.通过案例分析,能够使用字符串思维解决实际问题。
1.字符串中子串的开始位置、结束位置、长度之间的转换
(1)i为开始位置、j为结束位置,p为长度,则三者之间的转换公式为:
(2)i为开始位置、j为结束位置的下一个位置,p为长度,则三者之间的转换公式为:
学科网(北京)股份有限公司
2.利用字符串实现加密与解密
将明文中的每个位置的字符用其他字符代替,通过换位来实现加密。例如:
明文ch | 方向 | 代码 | 若key=3,则密文为 |
“A” | 右移 | chr((ord(ch)-65+key)%26+65) | “D” |
“A” | 左移 | chr((ord(ch)-65-key+26)%26+65) | “X” |
“a” | 右移 | chr((ord(ch)-97+key)%26+65) | “d” |
“a” | 左移 | chr((ord(ch)-97-key+26)%26+65) | “x” |
“0” | 右移 | str((int(ch)+key)%10) | “3” |
“0” | 左移 | str((int(ch)-key+10)%10) | “7” |
注意:若右移则为加密,若左移则为解密。
有如下Python程序段,它的功能是求两个字符串s1和s2的最长连续公共子串。若有多个答案,则输出首个答案;若无公共子串,则返回空串。请在横线处填入合适的代码。
s1=input("请输入字符串1: ")
s2=input("请输入字符串2: ")
max_len=0
ans=""
for i in range(len(s1)):
学科网(北京)股份有限公司
for j in range(len(s2)):
if s1[i]==s2[j]:
k=2
if i!=len(s1)-1 and j!=len(s2)-1:
while ① s1[i+k-1]==s1[j+k-1] :
k+=1
if k-1>max_len:
max_len=② k-1
ans=s1[i:i+max_len]
print(max_len,ans)
【解析】 题目中的程序求两个字符串s1和s2的最长连续公共子串,外层for循环遍历s1字符串位置,内层for循环遍历s2字符串位置,如果i,j位置的字符相等,则从这一对位置开始检测后面字符内容是否相同,通过while循环实现计算后面最长的相同字符内容,因此程序①处填写代码为s1[i+k-1]==s1[j+k-1],多轮循环计算相同字符长度,再比较出最长的公共子串和长度,程序②处代码为k-1。
变式12022·浙江7月学考查找与替换。从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。完成查找与替换功能的思路是:首先可从待检索文本文件“in.txt”逐行读取文本内容到列表text,然后从键盘上输入查找的字符串key和替换的字符串new,对列表text中的元素逐个进行查找并替换,结果保存到列表result,最后将result 写入文件“out.txt”。
(1)主程序。
学科网(北京)股份有限公司