XXXXXXXXXXX学院
授  课  教  案
授课日期
2018.11.13
课 时
2
课  型
理论课□  实训课□ 习题课□ 上机课□ 其他
授课章节、主题
字符串类型
教学目
的要求
字符串是程序中最常用的一种数据类型,字符串可以包含中文与英文等任何字符,在内存中用Unicode编码存储,但是存储到磁盘中时往往采用GBK或UTF-8等别的编码形式,本节目标掌握字符串的相关操作。
教学重点及难点
重点:字符串的相关操作
难点:字符串在内存中的存放形式
教  学  设  计
说  明
一、主要内容
(1)字符串在内存的存放形式
数字转unicode编码(2)获取字符串的长度
(3)读取字符串的各个字符
(4)字符串在内存中的编码
(5)编码转字符
(6)字符串的比较
(7)课堂练习
二、主要教学方法
讲练结合法:采用教师讲解理论知识--学生进行实践练习--教师总结点评的教学方法,遵循学生认知规律,帮助学生更好的掌握课堂内容。
作业与思考题:使用for循环的注意事项?
课后回忆:能够使用for循环编写正确的程序代码,进而解决简单的数学问题。
任课教师
教研室主任签字
XXXXXXXXXXX学院
授 课 教 案 附 页
教 学 设 计
说 明
一、字符串在内存中的存放形式
字符数组可以用来存储字符串,字符串在内存中的存放形式也就是字符数组的形式,字符串可以看成是字符的数组。
举例:s = ‘Hello World’
字符串s在内存中的存放形式为:
注意:空格也是一个字符,也要占据一个内存单元。
二、获取字符串的长度
字符串的长度可以使用len( )函数来获取。
例如:获取字符串s的长度:len(s)
举例:
len("abc")    #3
len("我们abc")    #5
注意:空字符串和空格字符串的区别!
空字符串s=’’是连续两个引号,中间没有任何东西,空串的长度为0,len(s)=0,但是s=’ ’包含一个空格,s不是空串,长度为1。
三、读取字符串的各个字符
要得到字符串s的第i个字符,可以使用s[i]得到。
注意:字符串中各个字符的编号是从0开始的。例如,字符串‘Hello’,‘H’是第0个字符,‘e’是第1个字符,‘l’是第2个字符,‘l’是第3个字符,‘o’是第4个字符。
因此,使用s[i]获取第i个字符时(从0开始编号),s[0]是第0个字符,s[1]是第1个字符,……,s[len(s)-1]是最后一个字符。
随堂练习
对于任意一个字符串s,请依次打印s的每一个字符。
任务分析:
1 打印s的每一个字符,需要将s的每个字符遍历一遍,显然需要用到循环结构(for循环或while循环);
2 若使用for循环,则需要确定for循环的三个参数:start、stop和step。
3 从s的第0个字符开始打印,所以start=0,一直打印到s的最后一个字符,也就是第len(s)-1个字符,所以stop=len(s)-1+1=len(s),依次打印每个字符,所以step=1。
代码示例:
代码运行:
四、字符串在内存中的编码
计算机只认识二进制,字符在计算机中实际上是用二进制数存储的,这个编码称为Unicode。要知道某个字符的编码,用函数ord(字符)便知道了。
举例:
ord(‘a’)    #字符a的Unicode码
ord(‘@’)  #字符@的Unicode码
s = '人生苦短 我用Python!!'
for i in range(0, len(s)):
    print(s[i],':',ord(s[i]))    # 查看字符串s的各个字符对应的Unicode码
随堂练习
给出大写英文字母‘A’~‘Z’、小写英文字母'a'~'z'、数字字符'0'~'9'对应的Unicode码。
任务分析:
求Unicode码,直接用ord( )函数即可。
代码示例:
代码运行:
从以上运行结果不难发现:
任意一个大写字母转小写字母,就是ord(大写字母)+32,而32正好是对应的大小写字母的Unicode码的差。不妨用ord(‘a’)-ord(‘A’)来表示。
因此,任意一个大写字母的Unicode码转小写字母的Unicode码:
ord(大写字母)+ord(‘a’)-ord(‘A’)
同理可得:任意一个小写字母的Unicode码转大写字母的Unicode码:
ord(小写字母) - (ord(‘a’)-ord(‘A’)) = ord(小写字母) - ord(‘a’) + ord(‘A’)
五、编码转字符
字符转编码可以用:ord( )函数;
已知编码,求对应的字符用:chr( )函数
例如:字符’a’对应的Unicode码是:ord(‘a’)=97,
那么chr(97)得到的就是字符’a’。
上面已经学习了大小写英文字母Unicode码的转换方法,由此可以快速得到大小写英文字母的转换方法:
大写字母X转小写字母x:  chr(ord(‘a’)+ord(‘X’)-ord(‘A’))
小写字母x转大写字母X:  chr(ord(‘A’)+ord(‘x’)-ord(‘a’))
六、字符串的比较
两个字符串a,b可以比较大小,比较规则是按各个对应字符的Unicode编码,编码大的一个为大。
比较a[0]和b[0],如果a[0]>b[0]则a>b,如果a[0]<b[0]则a<b,如果a[0]==b[0],继续比较a[1]和b[1];
如果a[1]>b[1]则a>b,如果a[1]<b[1]则a<b,如果a[1]==b[1],继续比较a[2]和b[2];
...
这个过程一直进行下去,直到比较出大小。
如果比较完毕两个字符串的每个字符都相等且len(a)==len(b),则a==b;如果len(a)>len(b)则a>b;如果len(a)<len(b)则a<b。       
作业:
判断字符串a和字符串b的大小。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。