单词频次-第12届蓝桥杯选拔赛Python真题精选

news2024/11/27 14:34:54

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

单词频次,本题是2020年10月25日举办的第12届蓝桥杯青少组Python编程选拔赛真题,题目要求编程统计给定一段文章中某个单词出现的次数。

先来看看题目的要求吧。

一.题目说明

编程实现:

给定一个单词及一段文章,请你输出这个单词在文章中一共出现的次数,和单词第一次出现时首字母位于文章中的位置(文章中第一个字符位置为0,第二个字符位置为1,字符包含空格)。

注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须是文章中独立的单词,不能是某个单词中的一部分。

例如:to 和tomato 不能匹配。

输入描述:

第1行为一个字符串,其中只含字母,表示给定单词(1 ≤ 字符串长度 ≤ 10)

第2行为一个字符串,其中只含字母和空格,表示给定的文章(1 ≤ 文章长度 ≤ 100000)

输出描述:

如果在文章中找到给定单词这输出两个整数,分别是单词在文章中出现的次数和第一次出现的位置,两个整数之间用一个空格隔开。如果单词在文章中没有出现,则直接输出一个整数-1。

样例输入:

To

to be or not to be is a question

样例输出:

2 0

评判标准:

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

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

  • 7分.能正确输出三组数据:

  • 7分:能正确输出四组数据;

  • 7分:能正确输出五组数据。

二.思路分析

这是一道简单的字符串运算题,考查的知识点包括字符串和列表的常见用法。

本题没有复杂的逻辑,只需要按照题目要求分布解决即可,基本上可以分成如下4步:

  • 统一转换大小写

  • 将文章转成列表

  • 在列表中统计单词的次数

  • 计算单词第一次出现的位置

根据题目的描述,在匹配单词时不区分大小写,因此需要先将单词和文章统一转成大写(或者小写)。

在指定字符串中查找某个单词,可以使用两种方法,一是直接使用字符串的find()方法,二是将字符串的单词拆分并保存到列表中再进行查找,因为列表处理起来更方便。

要统计某个单词出现的次数,可以直接使用列表的count()方法,如下:

list.count(obj)

相应的,如果出现次数 > 0,就需要找到单词第一次出现的位置,我们可以使用index()方法,如下:

ist.index(x[, start[, end]])

其中,x表示查找的对象,start和end都是可选的,分别表示查找的起始位置和结束位置。

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

三.编程实现

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

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

1). 这里将单词和文章都转成大写,你也可以使用lower()转成小写;

2). 对于位置的计算,默认设置为-1,表示没找到,如果单词出现了,则使用index()获取其位置并更新。

当然,Python还支持if...else的单行写法,也可以将判断代码简化如下:

至此,整个程序就全部完成了,你也可以输入不同的单词和文章来测试效果了。

四.总结与思考

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

  • 输入输出;

  • 字符串的大小写转换;

  • 字符串转换为列表;

  • 列表的常见方法;

本题难度一般,关键是要掌握字符串和列表的常见方法,否则就有些无从下手了。

实际上,在真正的编程中,字符串和列表出现的频率是非常高的,为此,Python提供了大量好用的函数和方法,一定要多加练习,并做到灵活运用。

超平老师给你留一道思考题,如果直接使用字符串的查找方法,代码又该如何编写呢?

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1556860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringAMQP-Exchange交换机

1、Fanout-Exchange的特点是:和它绑定的消费者都会收到信息 交换机的作用是什么? 接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列 声明队列、交…

MySQL 数据库基础操作详解

文章目录 MySQL 数据库基础操作详解1. 基本概念2. 库的操作3. 表的操作4. 数据操作5. 示例示例一:创建表和插入数据示例二:查询数据示例三:更新数据示例四:删除数据 MySQL 数据库基础操作详解 MySQL 是一种常用的关系型数据库管理…

linux查找指定目录下包含指定字符串文件,包含子目录

linux查找指定目录下包含指定字符串的文件,包含子目录 linux查找指定目录下包含指定字符串的指定文件格式,包含子目录 指定目录 cd /home/www/linux查找指定目录下包含指定字符串的文件,包含子目录 grep -r "指定字符串"注释 gr…

深入理解Happens-Before原则:以实例解析并发编程的基石

在最近的一次面试中面试官问到了Happens-Before原则,作此篇回顾下知识点。 在并发编程中,为了保证程序的正确性和可预测性,我们需要理解并遵循一系列内存访问规则。Happens-Before原则定义了线程间可见性和顺序性的保证。所有此篇文章将通过…

代码随想录训练营Day39:● 62.不同路径 ● 63. 不同路径 II

62.不同路径 题目链接 https://leetcode.cn/problems/unique-paths/description/ 题目描述 思路 dp[i][j] 表示的是走到(i,j)有多少种不同的路径 第一行和第一列都需要初始化为1,因为这些位置都只有一种路径 class Solution {…

头歌 实验一 关系数据库标准语言SQL湖北汽车工业学院 )

头歌 实验一 关系数据库标准语言SQL 制作不易!点个关注呗!为大家创造更多的价值! 目录 头歌 实验一 关系数据库标准语言SQL**制作不易!点个关注呗!为大家创造更多的价值!** 第一关:创建数据库第…

C++ :STL中deque的原理

deque的结构类似于哈希表,使用一个指针数组存储固定大小的数组首地址,当数据分布不均匀时将指针数组内的数据进行偏移,桶不够用的时候会像vector一样扩容然后将之前数组中存储的指针拷贝过来,从原理可以看出deque的性能是非常高的…

用Kimichat拆解雷军在小米汽车SU7发布会上的演讲技巧

小米SU7发布会可以说是非常成功。雷军的演讲技巧是发布会成功的重要因素之一,很值得借鉴学习。 可以借助Kimichat来深度拆解雷军在小米汽车SU7发布会上的演讲技巧。 在kimichat中输入提示词: 根据文件《雷军小米SU7发布会演讲文字稿》,总结…

C# 微软官方学习文档

链接:https://learn.microsoft.com/zh-cn/dotnet/csharp/ 在C#的学习过程中,我们可以参考微软官方的学习文档。它是一个免费的学习平台,提供了丰富的C#学习路径和教程(如下图),对我们入门到高级应用开发都…

spring-boot之shiro安全框架配置使用

shiro架构(外部) shiro架构(内部) 具体API操作 获取当前的用户对象 Subject currentUser SecurityUtils.getSubject();通过当前用户拿到session Session session currentUser.getSession(); session.setAttribute("someKey", "aValu…

代码随想录算法训练营第二十五天| 回溯算法理论基础、LeetCode77.组合

一、216.组合总和III 题目链接/文章讲解/视频讲解: https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 状态:已解决 1.思路 做过77题(上篇博客)后,这道题也就不难了,无非是多…

为什么在Python中总是使用【字典】这种类型呢?

你好,我是安然无虞。 文章目录 创建字典新增字典元素update 方法 删除字典元素pop 方法popitem 方法 查找字典元素in 和 in not 操作符get 方法thisdict[key] 修改字典元素遍历字典元素for循环遍历keys方法values方法items方法 合并字典字典中的key 字典常用接口汇…

深入解析大语言模型显存占用:训练与推理

深入解析大语言模型显存占用:训练与推理 文章脉络 估算模型保存大小 估算模型在训练时占用显存的大小 全量参数训练 PEFT训练 估算模型在推理时占用显存的大小 总结 对于NLP领域的从业者和研究人员来说,有没有遇到过这样一个场景,你的…

Java8之接口默认方法

Java8之接口默认方法 一、介绍二、代码1、接口2、实现类3、测试代码4、效果 一、介绍 在Java8中,允许为接口方法提供一个默认的实现。必须用default修饰符标记这样一个方法。默认方法也可以调用其他方法 二、代码 1、接口 public interface PersonService {void…

基于ARM内核的智能手环(day1)

整体介绍 智能手环由 ARM 内核 MCU(Cortex-M 系列)、TFTLCD 屏、温湿度传感器、心率传感器、 加速度传感器等主要几部分构成。该平台硬件采用 STM32 芯片,通过对温湿度传感器的驱动编写,获取周围温湿度数据,并在 LCD 屏显示,通过对…

算法学习——LeetCode力扣动态规划篇8

算法学习——LeetCode力扣动态规划篇8 300. 最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode) 描述 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删…

会话跟踪技术(Session 以及Cookie)

一: 前提概要 1>会话: 会话指的是用户打开浏览器, 访问某些web服务器资源的时候, 会话就会进行建立, 直到有一方断开, 那么会话才会结束, 需要注意的一点是, 一次的会话可以有多次的请求以及响应 2>会话跟踪: 是一种用于维护浏览器状态的方法, 服务器需要识别多次的请求,…

基于springboot的船舶维保管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

深入理解Docker-使用Docker有什么优势?

Docker是什么? 我们先给出Docker官网给出的定义来看下Docker是什么? Docker加速你应用的构建,共享和运行。 怎么来加速的那? without tedious envionment configuration or management 不用进行哪些乏味的环境配置和管理。 怎么…

U盘无法打开?教你几招轻松解决数据恢复难题

在日常生活和工作中,U盘作为移动存储设备,承载着我们大量的重要数据。然而,当某一天我们满怀期待地将U盘插入电脑,却发现它无法被正常打开时,那种焦虑和挫败感简直让人崩溃。我们可能会尝试各种方法,如重新…