中小学教育资源及组卷应用平台
第三单元
特殊的线性表
项目六
探究文本字符的处理
——字符串的操作
第三课时
模拟实现文本函数的功能
教材分析
本节的主要内容是模拟实现文本函数的功能。以探究文本字符的处理为主线,整个项目分为实现文本字符编辑、实现文本查找、实现文本函数功能三个问题解决。本节课时是从探究电子表格应用中对文本字符进行连接、截取、复制,引出文本字符在计算机中对应于字符串数据,而字符串数据是以种特殊数据类型的线性表形式存储数据的。在这一课时过程中,让学生逐步理解本项目的核心概念“字符串”及字符串应用的基本操作,如连接、截取、复制等,并在活动中让学生利用
Python编程实现这些基本操作。通过这一项目学习过程,进一步培养学生的信息意识和计算思维。
教学目标
1.理解字符串的连接、截取、复制等基本操作和作用;
2.能设计字符串连接、截取、复制的算法;
3.能用Python编写程序,实现字符串连接、截取、复制等操作;
4.培养学生的信息意识和计算思维能力。
教学重点
1.理解字符串的概念;
2.理解字符串的存储结构;
3.掌握字符串处理的基本操作;
教学难点
1.能编程实现字符串处理的基本操作;
2.培养学生的信息意识和计算思维能力。
教学方法
体验法、讲授法、讨论法、示例法
教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、Python编程环境、学生上机练习的程序文件,预先编制的Python程序文件等。
教学过程
一、新课导入
复习字符串的概念并尝试写出字符串抽象数据类型的定义。
ADT
String:
数据对象:D={ai
l
ai,
∈
CharacterSet,i=1,2,…,n,n>=0}
数据关系:R={
l
ai-1,ai
∈
D,i=2,...,n}
基本操作:
def
Assign(self,chars)
#生成一个值等于chars的字符串
def
Copy(self,s)
#复制字符串。
def
Compare(self,s)
#比较操作,若大于s则返回1;若等于s则返回0;若小于则返回-1
def
Length(self)
#返回字符串的元素个数,即求长度
def
Concat(self,s)
#连接字符串s
def
SubString(self,pos,len)
#pos正确,返回第pos个字符起长度为len的子串
def
Index(self,s,pos)
#返回子串s在字符串中第pos个字符之后第一次出现的位置;若无则返回0
def
Replace(self,s,t)
#用t替换字符串中出现的所有的子串s
def
Insert(self,pos,s)
#在字符串的第pos个字符位置上插入s
def
Deletel(self,pos,len)
#删除字符串中第pos位置开始长度为len的子串
二、字符串的基本操作
1.连接(合并)操作
若要将两个字符串合并,要进行连接操作,即将两个字符串连接成一个字符串,在Python语言中用+表示连接。
例如,英文名s=“Cheng,Fei”,昵称t=“Adam”,s+1为“Cheng,Fei
Adam”,t+s为“Adam
Cheng,Fei”。C语言用连接函数streat(s,t)表示连接操作。
算法的基本思想是将第二个字符数组的元素插入到第一个字符数组的尾端。
2.截取子串操作
文字处理软件中的选中文本一部分相当于截取子串操作。
例如,若字符串s=“Cheng,Fei”,用鼠标拖曳选中“Cheng”,“Cheng”就是“Cheng,Fei”的一个子串。当然“Cheng,Fei”可以有很多种子串。
在Python语言中截取子串操作是根据给定的开始位置和结束位置来截取子串的。
例如,s=“Cheng,Fei”,那s[0:5]为Cheng,s[6:9]为Fei。注意子串的尾字符是结束位置的前一个字符,若省略则截取到字符串尾。算法的基本思想是在字符数组中将要截取的子串复制到结果数组中。
3.求长度操作
在Python语言中用len(string)可获得字符串string的长度。例如,s=“What
is
it ”,则len(s)为11,注意字符串中的空格也是一个字符。
4.复制操作
在Python语言中用赋值运算符=可实现复制操作。
例如,str1=“student”,str2=str1,str1=“teacher”,结果是str2为“student",str1为“teacher”。
赋值操作是将字符串赋给一个字符串变量,Python语言中用赋值运算符“=”实现赋值操作。算法的基本思想是将一个字符数组复制到另一个数组中。
三、模拟实现文本函数的功能
电子表格软件还提供了许多函数,如图3-19所示,方便用户快速处理文本数据,如合并、截取字符串等。
图3-19文本函数
思考与讨论?
你还知道其他函数的功能和对应的字符串操作吗?
例如:返回字符串中最左边的字符,返回字符串中的字符个数,替换字符串中的字符等。
假设要把某学生的英文名和昵称合并在一起,可以使用软件提供的函数TEXT,也可以使用“&”连接符:要截取英文名中的姓可以使用函数MID。这些函数分别对应于字符串的连接操作和截取子本操作。
例如,英文名s=“Cheng,Fe",昵称t=“Adam”,将英文名与昵称合井即s+t为“Cheng,Fei
Adan”。实现过程如图3-20所示。
图3-20连接操作过程
若要在英文名“Cheng,Fei”中截取姓,即第1个位置开始截取5个字符,具体操作实现如图3-21所示。
图3-21字符一一传送
注意第1个位置对应数组下标为0,截取的子串在t数组中。
小贴士
连接操作:将两个字符串连接成一个字符串。
子串:字符串中任意个连续的字符组成的子序列。
取子报作:在字符串中根据给定的起始、结束位置截取子串,或者根据起始位置和载取的长度来载取子串。
四、课堂活动
1.画出将t字符串合并到s字符串的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=[‘
’]
14
#定义s列表空间
n=9
for
j
in
range(0,n):
#s列表赋值
s[j]=input("输入一个字符:")
t=['A',’d','a','m’]
#定义t列表
m=len(t)
i=n
for
j
in
range(0,m);
__________
__________
参考答案:
s[i]=t[j]
i=i+1
2.画出在s宇符串中从第i位置开始截取长度为m的子串操作(结果保存在t中)的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=['C’,'h’,’e’,’n’,’g’,’’,’F’,’e’,’i’]
#定义s列表
t=['']
5
n=len(s)
________
________
for
j
in
range(0,m);
If(i_________
i=i+1
参考答案:
i=int(input(“输入截取了串的起始位置i:”))
m=int(input(“输入截取子串的长度m:”))
t[j]=s[i-1]
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
HYPERLINK
"http://21世纪教育网(www.21cnjy.com)
"
21世纪教育网(www.21cnjy.com)(共25张PPT)
第三课时
模拟实现文本函数的功能
信息技术沪教版
选择性必修1
第三单元
特殊的线性表
项目六
探究文本字符的处理
——字符串的操作
一、新课导入
二、字符串的基本操作
三、模拟实现文本函数的功能
四、课堂活动
一、新课导入
ADT
String:
数据对象:D={ai
l
ai,
∈
CharacterSet,i=1,2,…,n,n>=0}
数据关系:R={l
ai-1,ai
∈
D,i=2,...,n}
基本操作:
def
Assign(self,chars)
#生成一个值等于chars的字符串
def
Copy(self,s)
#复制字符串。
def
Compare(self,s)
#比较操作,若大于s则返回1;若等于s则返回0;若小于则返回-1
def
Length(self)
#返回字符串的元素个数,即求长度
def
Concat(self,s)
#连接字符串s
def
SubString(self,pos,len)
#pos正确,返回第pos个字符起长度为len的子串
def
Index(self,s,pos)
#返回子串s在字符串中第pos个字符之后第一次出现的位置;若无则返回0
def
Replace(self,s,t)
#用t替换字符串中出现的所有的子串s
def
Insert(self,pos,s)
#在字符串的第pos个字符位置上插入s
def
Deletel(self,pos,len)
#删除字符串中第pos位置开始长度为len的子串
二、字符串的基本操作
1.连接(合并)操作
若要将两个字符串合并,要进行连接操作,即将两个字符串连接成一个字符串,在Python语言中用+表示连接。
例如,英文名s=“Cheng,Fei”,昵称t=“Adam”,s+1为“Cheng,Fei
Adam”,t+s为“Adam
Cheng,Fei”。C语言用连接函数streat(s,t)表示连接操作。
算法的基本思想是将第二个字符数组的元素插入到第一个字符数组的尾端。
2.截取子串操作
文字处理软件中的选中文本一部分相当于截取子串操作。
例如,若字符串s=“Cheng,Fei”,用鼠标拖曳选中“Cheng”,“Cheng”就是“Cheng,Fei”的一个子串。当然“Cheng,Fei”可以有很多种子串。
2.截取子串操作
在Python语言中截取子串操作是根据给定的开始位置和结束位置来截取子串的。
例如,s=“Cheng,Fei”,那s[0:5]为Cheng,s[6:9]为Fei。注意子串的尾字符是结束位置的前一个字符,若省略则截取到字符串尾。算法的基本思想是在字符数组中将要截取的子串复制到结果数组中。
3.求长度操作
在Python语言中用len(string)可获得字符串string的长度。例如,s=“What
is
it ”,则len(s)为11,注意字符串中的空格也是一个字符。
4.复制操作
在Python语言中用赋值运算符=可实现复制操作。
例如,str1=“student”,str2=str1,str1=“teacher”,结果是str2为“student",str1为“teacher”。
赋值操作是将字符串赋给一个字符串变量,Python语言中用赋值运算符“=”实现赋值操作。算法的基本思想是将一个字符数组复制到另一个数组中。
三、模拟实现文本函数的功能
电子表格软件还提供了许多函数,如图所示,方便用户快速处理文本数据,如合并、截取字符串等。
思考与讨论?
你还知道其他函数的功能和对应的字符串操作吗?
思考与讨论?
你还知道其他函数的功能和对应的字符串操作吗?
例如:返回字符串中最左边的字符,返回字符串中的字符个数,替换字符串中的字符等。
假设要把某学生的英文名和昵称合并在一起,可以使用软件提供的函数TEXT,也可以使用“&”连接符:要截取英文名中的姓可以使用函数MID。这些函数分别对应于字符串的连接操作和截取子本操作。
例如,英文名s=“Cheng,Fe",昵称t=“Adam”,将英文名与昵称合井即s+t为“Cheng,Fei
Adan”。实现过程如下图所示。
若要在英文名“Cheng,Fei”中截取姓,即第1个位置开始截取5个字符,具体操作实现如图所示。
注意第1个位置对应数组下标为0,截取的子串在t数组中。
小贴士
连接操作:将两个字符串连接成一个字符串。
子串:字符串中任意个连续的字符组成的子序列。
取子报作:在字符串中根据给定的起始、结束位置截取子串,或者根据起始位置和载取的长度来载取子串。
四、课堂活动
1.画出将t字符串合并到s字符串的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=[‘
’]
14
#定义s列表空间
n=9
for
j
in
range(0,n):
#s列表赋值
s[j]=input("输入一个字符:")
t=['A',’d','a','m’]
#定义t列表
m=len(t)
i=n
for
j
in
range(0,m);
__________
__________
1.画出将t字符串合并到s字符串的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=[‘
’]
14
#定义s列表空间
n=9
for
j
in
range(0,n):
#s列表赋值
s[j]=input("输入一个字符:")
t=['A',’d','a','m’]
#定义t列表
m=len(t)
i=n
for
j
in
range(0,m);
__________
__________
s[i]=t[j]
i=i+1
2.画出在s宇符串中从第i位置开始截取长度为m的子串操作(结果保存在t中)的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=['C’,'h’,’e’,’n’,’g’,’’,’F’,’e’,’i’]
#定义s列表
t=['']
5
n=len(s)
________
________
for
j
in
range(0,m);
If(i_________
i=i+1
2.画出在s宇符串中从第i位置开始截取长度为m的子串操作(结果保存在t中)的算法流程图,尝试完成下述代码,并理解每一条语句的作用。
s=['C’,'h’,’e’,’n’,’g’,’’,’F’,’e’,’i’]
#定义s列表
t=['']
5
n=len(s)
________________________________________
________________________________________
for
j
in
range(0,m);
If(i_______
i=i+1
i=int(input(“输入截取了串的起始位置i:”))
m=int(input(“输入截取子串的长度m:”))
t[j]=s[i-1]
谢谢
21世纪教育网(www.21cnjy.com)
中小学教育资源网站
有大把高质量资料?一线教师?一线教研员?
欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!
详情请看:
https://www.21cnjy.com/help/help_extract.php