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小时内删除。
发表评论