当前位置:首页 > 技术 > 正文内容

数字处理——第10届蓝桥杯Python真题详解

访客 技术 2026年9月23日 12

[导读]:超平老师的Scratch蓝桥杯真题解读系列广受好评,为回馈大家的支持,特推出《Python蓝桥杯真题解析100讲》系列,这是其中的第三讲。

数字处理是2019年3月24日举办的第10届蓝桥杯青少组Python编程比赛的第三题。该题要求对一组输入数字进行统计、排序及字母映射等操作。

下面我们将逐步分析题目的具体要求。

一. 题目概述

请编写程序实现以下功能:

  1. 统计输入数字的总个数;
  2. 找出输入数字中的最小值;
  3. 将这些数字按降序排列并输出;
  4. 若数字在1~26范围内,则将其转换为对应的大写字母(1→A,26→Z),否则不输出该字母。超出范围的数字需显示为"[bad]"。

输入格式: 输入N个数字(2 ≤ N ≤ 15),数字间以逗号分隔。

输出格式: 第一行为输入数字的总数; 第二行为最小数字; 第三行为按降序排列的数字; 第四行为对应的字母,超出范围的数字显示为"[bad]"。

示例输入: 9,12,15,22,5,21,214

示例输出: 7 5 214, 22, 21, 15, 12, 9, 5 ILOVEU[bad]

程序文件命名为"lq003"。

评分标准:

  • 10分:正确输出数字个数;
  • 20分:在上述基础上正确输出最小值;
  • 40分:再增加正确排序;
  • 50分:完整实现所有功能。

二. 解题思路

本题主要考察Python基础语法和常用函数的灵活使用,包括字符串处理、列表操作、排序和字符转换等。

我们可以将问题拆解为以下几个步骤:

  1. 输入数据处理;
  2. 获取列表长度与最小值;
  3. 实现降序排序;
  4. 数字转字母。

(1)输入处理

输入内容是以逗号分隔的多个数字字符串,需要将其分割并转为整型列表。

Python中可使用split()方法进行分割,例如:

data = input().split(',')

此时返回的是字符串列表,如 ['9', '12', '15', ...]。 为了获得整数列表,可以采用列表推导式:

nums = [int(x) for x in input().split(',')]

(2)统计与查找

使用len()获取元素个数,min()获取最小值。

(3)排序

题目要求从大到小排序,可使用sorted()函数,它不会修改原列表,返回新的排序后列表。 若使用list.sort()方法,则会直接修改原列表。

(4)数字转字母

可用两种方式实现:

  • 使用字典建立映射关系;
  • 利用ASCII码,A的ASCII码为65,因此数字n对应字符为chr(n + 64)。

三. 编程实现

以下是完整的代码实现:

# 读取输入并转换为整数列表
nums = [int(x) for x in input().split(',')]

# 输出数字个数
print(len(nums))

# 输出最小值
print(min(nums))

# 按降序排列并输出
sorted_nums = sorted(nums, reverse=True)
print(','.join(map(str, sorted_nums)))

# 转换为字母
result = ''
for num in nums:
    if 1 <= num <= 26:
        result += chr(num + 64)
    else:
        result += '[bad]'
print(result)

四. 总结与思考

本题属于中等难度题目,涉及多个Python核心知识点,包括输入处理、列表操作、排序和字符转换。虽然代码量不大,但对逻辑清晰度和细节处理有较高要求。

需要注意的关键点包括:

  • sorted()与sort()的区别;
  • 列表推导式的灵活使用;
  • 字符与ASCII码的转换;
  • 条件判断与循环结构的结合。

此外,题目中多次强调了列表推导式的重要性,这是Python中高效处理列表的一种方式,值得深入掌握。

思考题:如果使用 arr = nums 进行赋值,再对 arr 排序,会发生什么?为什么?

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。