字符串转码-第11届蓝桥杯国赛Python真题精选

字符串转码-第11届蓝桥杯国赛Python真题精选_第1张图片

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第35讲。

字符串转码,本题是2020年10月30日举办的第11届蓝桥杯青少组Python编程国赛编程部分第2题,题目要求将给定的字符串中的奇数位转为大写字母,偶数位转成对应的ASCII码。

先来看看题目的要求吧。

一.题目说明

编程实现:

输入一个全部由小写字母组成的字符串(如:abcd),然后将字符串奇数位的小写字母转为大写字母,将偶数位的小写字母转为对应的ASCII码,最后将转化后的结果输出。

输入描述:

输入一个全部由小写字母组成的字符串(如:abcd)

输出描述:

输出转化后的结果

样例输入:

abcd

样例输出:

A98C100

二.思路分析

这是一道简单的字符串运算题,考查的知识点主要包括循环、字符串运算和常见的内置函数。

根据题目的要求,需要对输入的字符串进行遍历,按顺序依次取出每一个字符并处理,按照位置分为两种情况:

  • 奇数位:将小写字母转成大写

  • 偶数位:将小写字母转成对应的ASCII码

最简单的方法是直接使用Python内置函数,涉及大小写转换的函数有如下两个:

upper(): 将小写字母转为大写lower(): 将大写字母转为小写

涉及ASCII码的函数有如下两个:​​​​​​​

ord(): 获取指定字符的ASCII码chr(): 获取指定ASCII码的字符

对于本题而言,我们只需要使用upper()和ord()即可。

不过需要注意对于奇数位和偶数位的正确解读,可以结合样例来理解,很显然,第一个字符是奇数位,第二个是偶数位,以此类推。

当然,有同学会有这样的疑问,考试的时候,完全不记得这些内置函数了,怎么办?有没有其他的方法?

这个必须有,使用字典就可以,代码稍微复杂一点,同时需要对ASCII码有所了解,至少要知道字母'a'和‘A’的ASCII码,如图所示:

字符串转码-第11届蓝桥杯国赛Python真题精选_第2张图片

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们使用两种方法来编写程序:

  • 使用内置函数;

  • 使用字典;

1. 使用内置函数

根据前面的思路分析,编写代码如下:

字符串转码-第11届蓝桥杯国赛Python真题精选_第3张图片

代码比较简单,强调3点:

1). Python中的for循环的索引i默认是从0开始的,因此当i为偶数时表示奇数位;

2). upper()方法是对字符或字符串而言的,需要使用对象调用方法的语法;

3). ord()是函数,直接传入参数即可,返回值是数字,需要转成字符串,再进行字符串连接操作。

2. 使用字典

使用字典的思路就是先分别定义好两个字典,一个是小写字母和大写字母对应的字典,一个是小写字母和ASCII码对应的字典,然后直接使用字典进行拼接,我们分3步来实现。

第一步,定义大写字母字典

将小写字母作为键,大写字母作为值,定义字典如下:

字符串转码-第11届蓝桥杯国赛Python真题精选_第4张图片

第二步,定义ASCII码字典

将小写字母作为键,将ASCII码作为值,定义字典如下:

字符串转码-第11届蓝桥杯国赛Python真题精选_第5张图片

第三步,循环转换

有了字典,对于任何一个小写字母,我们就可以直接获取其对应的大写字母和ASCII码,编写代码如下:

字符串转码-第11届蓝桥杯国赛Python真题精选_第6张图片

这部分代码和方法1基本相同,不同的是,在获取大写字母时直接使用字典letter_dict,获取ASCII码时直接使用字典ascii_dict。

输入字母abcd,效果如下:

图片

输入字母abcdefghijk,效果如下:

图片

至此,整个程序就全部完成了,你也可以输入更多的字符串来测试效果。

四.总结与思考

本题核心代码在8行左右,涉及到的知识点包括:

  • 循环语句,主要是for...in循环;

  • 输入输出函数;

  • 条件语句;

  • 字符串运算;

  • Pyhton内置函数;

本题比较简单,重点是对upper()方法和ord()函数的熟悉程度,一旦掌握了这两个函数,写代码也就是几分钟的事情了。

退一步来说,在比赛的时候,实在想不起来这些函数,也应该能够找到其它解决方案,比如这里的字典。

两相对比,内置函数实在是太好用了,所以在日常学习Python编程的时候,要多了解并使用Python内置函数,从而提升编程效率。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香。

需要源码的,可以移步至“超平的编程课”gzh。

你可能感兴趣的:(蓝桥杯,少儿编程竞赛,STEMA测评,python)