字符串处理-第11届蓝桥杯省赛Python真题精选

发布时间:2024年01月04日

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

字符串处理,本题是2020年6月20日举办的第11届蓝桥杯青少组Python编程省赛真题,题目要求编程实现字符串处理,如果该字符串以er,ly或者ing后缀结尾的,则删除该字符串后缀的字符串,否则原样输出。

先来看看题目的要求吧。

一.题目说明

时间限制:4000Ms

内存限制:589824K3

编程实现

输入一个字符串,如果该字符串以er,ly或者ing后缀结尾的,则删除该字符串后缀的字符串,否则将原字符串输出。

输入描述:

输入一个字符串

输出描述:

输出删除后的字符或原字符串

样例输入:

driver

样例输出:

driv

评分标准:

  • 10分:能正确输出一组数据;

  • 10分:能正确输出两组数据;

  • 10分:能正确输出三组数据;

  • 20分:能正确输出四组数据。

二.思路分析

这是一道和字符串操作相关的题目,考查的知识点主要包括字符串的截取运算。

根据题目描述,字符串后缀有如下3种情况:

  • er

  • ly

  • ing

所以,我们需要获取字符串的最后两个或三个字符,这不就是字符串截取操作么。

在Python编程中,提供了大量的字符串运算符,如图:

图片

很显然,[:]运算符正是解决本题的关键,通常称作字符串截取运算。

该运算符有两个参数,其用法如下:

字符串[start?: end]

在使用的时候,注意以下几点:

  • 遵循左闭右开原则,即包含start,不包含end,典型的虎头蛇尾特性;

  • end必须比start大,否则得到的是空字符串;

  • 可以使用负索引,当索引为-1时,表示最后一个字符;

  • 可以省略start,表示从第一个字符开始截取;

  • 可以省略end,表示截取从start开始后所有的字符;

有了[:]这个强大的运算符工具,代码就变得非常简单了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们直接编写程序如下:

图片

代码比较简单,说明3点:

1). s[-2:],start = 2,end省略了,其意思是指从倒数第二个字符串开始往后截取,这样就可以获取字符串最末尾两个字符构成的子串了;

2). s[:-2],start省略了,end = -2,其意思是从第一个字符开始截取,一直到倒数第二个字符截止,不包括倒数第二个字符,这样就可以去掉字符串的最后两个字符了;

3). 在使用[start:end]截取的时候,start和end可以省略,但是冒号不能省略。

测试程序,输入driver,效果如下:

图片

输入friendly,效果如下:

图片

输入feeling,效果如下:

图片

输入python,效果如下:

图片

测试程序的时候,需要将各种情况都测试一遍。至此,整个程序就全部完成了,你也可以输入不同的日期来测试效果。

四.总结与思考

本题的分数为50分,代码在8行左右,涉及到的知识点包括:

  • 基本的输入输出;

  • 字符串运算符,尤其是截取运算符;

  • 多分支条件语句;

作为省赛的第一题,难度一般,基本上属于送分题,关键是要熟练掌握字符串的基本运算。如果不使用[:]运算符的话,就需要结合循环来逐个处理字符串了,代码相对要麻烦一些。

需要注意的是,在Python编程中,列表有一个超级好用的切片操作,如下:

list[start:?stop:?step]

而字符串也可以当作列表来操作,所以字符串也支持切片操作。这就意味着,对于字符串,可以正向截取,也可以反向截取,非常的强大。

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

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

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

文章来源:https://blog.csdn.net/diamondwang2012/article/details/135382324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。