找最大数字-第12届蓝桥杯国赛Python真题解析

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第60讲。
找最大数字,本题是2021年5月29日举办的第12届蓝桥杯青少组Python编程全国总决赛真题编程部分第1题。题目要求编程找出给定N个数字中最大的数字,这N个数字包含整数和小数。
先来看看题目的要求吧。
一.题目说明
编程实现:
给定N个数字(包含整数和小数),找到N个数中最大的数字。
输入描述:
输入N个数字(N > 2),且N个数字之间以英文逗号隔开
输出描述:
输出N个数字中最大的数字
样例输入:
4,8,2
样例输出:
8
02
二.思路分析
这是一道简单的计算题,考查的知识点包括循环、条件、列表和字符串处理。
乍一看,这是一道超级简单的题目,很多同学不假思索地就能想到如下两种解决方案:
-
直接使用max()函数获取最大值
-
使用sort()函数排序再获取最大项
对不对呢,只能说部分正确,但不全対,你知道不对的地方在哪里吗?
问题就出在数据类型上,本题要求输入的数据可以是整数也可以是小数,基本上可以分为如下3种情形:
1). 都是整数,比如4, 8, 2
2). 都是小数,比如2.718, 3.14, 1.618
3). 整数和小数混合,比如3, 6.6, 5
于是问题就来了,是将输入的数字转成int还是float呢?
都转成int肯定是不行的,它会直接丢失小数部分。都转成float呢,也不行,比如4, 8, 2,如果都转成float,那么输出的就是8.0,而不是8了。
这就导致输出数据和输入数据不一致的情况,那应该怎么办呢?
仔细想想,你会发现类型转换是必不可少的,只是不能统一转换,我们可以转换一下思路,按需转换。
也就是说,在获取输入的时候不要转换,直接将数字字符串保存到列表中即可,然后在遍历每一个列表项时按需转换,如果是小数,则使用float进行转换,否则就是要int转换。
这样一来,棘手的问题就迎刃而解了, 思路有了,接下来,我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析,我们编写程序如下:

代码不难,简单说明4点:
1). nums列表中保存的是字符串类型;
2). max_num表示最大值,初始值是列表的第1项,类型和输入保持一致,后续在比较过程中,不断更新最大值,其类型可能是int,也可能是float;
3). 判断小数的依据是看是否包含小数点,直接使用in运算符即可;
4). 在比较的时候,需要转换类型。
至此,整个程序就全部完成了,你也可以输入不同的数字序列来测试效果啦。
四.总结与思考
本题代码在10行左右,涉及到的知识点包括:
-
循环语句,主要是for...in;
-
条件语句;
-
列表的使用;
-
字符串的处理及运算;
-
类型转换;
作为本次国赛的第1题,难度一般,但也不是简单的送分题。关键有两点,一是看清题目的描述和要求,二是要充分理解Python的弱类型特性。
Python是一种弱类型编程语言,这意味着我们不需要明确声明变量数据类型,变量会在运行时根据赋值语句或表达式的值来确定其类型。
主要表现在如下3个方面:
1). 变量无须声明:在Python中,可以直接将任何类型的值赋给变量,而无需事先声明其数据类型。
2). 数据类型可以随时改变:Python允许变量在程序执行过程中改变其数据类型。
3). 自动类型转换:在某些情况下,Python会自动进行类型转换以满足运算需求。例如,当你尝试将一个整数和一个浮点数相加时,Python会自动将整数转换为浮点数以执行加法运算。
在本题中,我们正是利用了Python的弱类型特点,在每次比较的过程中,将最大值转成int或float类型,然后赋值给max_num变量。
超平老师给你留两道思考题:
1). 将输入的数字以字符串的形式保存到列表中,直接使用max()函数获取最大值,是否可行,为什么?
2). 除了本题中的方法,你还有什么其它方法来确保输出和输入的数据完全一致?
你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
需要源码的,可以移步至“超平的编程课”gzh。
五.补充
此题还有一个更为简单的方法,就是直接使用eval()函数,然后结合max()函数,代码如下:
# 直接使用eval
nums = eval(input() )
# 找到并打印最大的数字
print(max(nums))
eval() 是 python 中功能非常强大的一个函数,它会将字符串当成有效的表达式来求值,并返回计算结果。也就是说eval() 函数会把里面的字符串参数的引号去掉,把中间的内容当成Python的代码
比如最常见的,就是自动实现 list、dict、tuple、与str 之间的转化,上面代码中的eval(input()),会将输入的数字,自动转成list,并保存各项数据。
它的缺点就是具有较大的安全隐患,用户可以输入任何可以执行的代码或命令并执行,想想也是挺恐怖的。
所以,在实际开发时千万别使用eval()函数直接转换input的结果,考试时用一用倒是可以的。
相关文章:
找最大数字-第12届蓝桥杯国赛Python真题解析
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第60讲。 找最大数字&#…...
蓝桥杯 算法提高 ADV-1170 阶乘测试 python AC
找规律题,遍历i中有几个m就加几,和m的多少次数有关 第一版👇 try:while True:n, m map(int, input().split())ll [i for i in range(1, n 1) if i % m 0]ans len(ll)M mwhile ll:lll []M * mfor i in ll:if i % M 0:lll.append(i)a…...
阿里巴巴杭州全球总部正式启用,创新“减碳大脑”科技减碳 | 最新快讯
来源:封面新闻 封面新闻记者付文超 5 月 10 日,记者获悉,位于未来科技城的阿里巴巴杭州全球总部新园区正式启用,这是阿里巴巴目前最大的综合性办公园区。从空中俯瞰,园区正中央呈现阿里标志性的笑脸 logo,这…...
蓝桥杯国赛练习题真题Java(矩阵计数)
题目描述 一个 NM 的方格矩阵,每一个方格中包含一个字符 O 或者字符 X。 要求矩阵中不存在连续一行 3 个 X 或者连续一列 3 个 X。 问这样的矩阵一共有多少种? 输入描述 输入一行包含两个整数 N,M (1≤N,M≤5)。 输出描述 输出一个整数代表答案。…...
概念解析 | ROC曲线:评估分类模型
注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:ROC曲线的含义和绘制 概念解析 | ROC曲线:评估分类模型 第一部分:通俗解释 在我们的日常生活中,经常会遇到需要做出判断和选择的情况。比如,当你收到一封邮件时…...
数据可视化训练第二天(对比Python与numpy中的ndarray的效率并且可视化表示)
绪论 千里之行始于足下;继续坚持 1.对比Python和numpy的性能 使用魔法指令%timeit进行对比 需求: 实现两个数组的加法数组 A 是 0 到 N-1 数字的平方数组 B 是 0 到 N-1 数字的立方 import numpy as np def numpy_sum(text_num):"""…...
【Java EE】数据库连接池详解
文章目录 🎍数据库连接池🌸Hikari🌸Druid 🍀MySQL开发企业规范⭕总结 🎍数据库连接池 在上⾯Mybatis的讲解中,我们使⽤了数据库连接池技术,避免频繁的创建连接,销毁连接 下⾯我们来了解下数据库连接池 数据库连接池负…...
正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.4讲 GPIO中断实验-IRQ中断服务函数详解
前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...
如何平衡RPA机器人的安全性与业务敏捷性,同时不牺牲用户体验?
平衡RPA机器人的安全性与业务敏捷性,同时不牺牲用户体验,是RPA实施中的一个关键挑战。以下是一些策略和最佳实践: ### 1. 安全设计原则 从设计阶段就将安全性纳入考虑,遵循安全设计原则。这意味着在开发RPA解决方案时࿰…...
地球行星UE5和UE4
地球行星,包含多种地球风格,可蓝图控制自转和停止,可材质自转. 支持版本4.21-5.4版本 下载位置:https://mbd.pub/o/bread/ZpWZm5lv b站工坊:https://gf.bilibili.com/item/detail/1105582041 _______________________…...
7.k8s中的名称空间namespace
目录 一、Namespace(命名空间) 二、查看系统的名称空间 1.查看系统中的名称空间列表 2.单独查看一个名称空间下的对应资源 三、名称空间的管理 1.创建名称空间 1.1响应式创建 1.2声明式创建 2.删除名称空间 四、资源引用名称空间 一、Namespace(命名空间) 命名空间(Name…...
上海企业源代码防泄密解决方案,企业源代码防泄密如何应对?
随之互联网的发展,企业员工因离职把企业源代码泄露或删库跑路的事情屡见不鲜,各大互联网公司基本都会出现源代码泄露的事情,这样的问题也成了企业在发展过程中不可避免的问题。企业源代码泄露会给企业带来的损失也是不可估量的,据…...
将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 4
第十三章 车联网 数字化设备正变得越来越普遍并且相互联系。这些设备向数字生态系统智能部分的演进创造了迄今为止尚未解决安全问题的新颖应用。一个特定的例子是车辆,随着车辆从简单的交通方式发展到具有新的感知和通讯功能的智能实体,就成为智能城市的…...
OpenSearch 与 Elasticsearch:7 个主要差异及如何选择
OpenSearch 与 Elasticsearch:7 个主要差异及如何选择 1. 什么是 Elasticsearch? Elasticsearch 是一个基于 Apache Lucene 构建的开源、RESTful、分布式搜索和分析引擎。它旨在处理大量数据,使其成为日志和事件数据管理的流行选择。 Elasti…...
[Docker]容器的网络类型以及云计算
目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令,这里补充两个: 导出镜像文件:[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…...
VMP 简单源码分析(.net)
虚拟机 获取CPU的型号 实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。 截获异常 先由虚拟机处理 处理不了再抛出异常 priva…...
数据结构与算法学习笔记-二叉树的顺序存储表示法和实现(C语言)
目录 前言 1.数组和结构体相关的一些知识 1.数组 2.结构体数组 2.二叉树的顺序存储表示法和实现 1.定义 2.初始化 3.先序遍历二叉树 4.中序遍历二叉树 5.后序遍历二叉树 6.完整代码 前言 二叉树的非递归的表示和实现。 1.数组和结构体相关的一些知识 1.数组 在C语…...
如何在Windows和Linux中杀死Python进程
在开发和运行Python脚本的过程中,有时我们需要强制结束正在运行的Python进程。这可能是因为脚本运行出现了不可预见的错误,或者我们需要停止一个长时间执行的任务。无论原因如何,了解如何在不同操作系统中正确、安全地终止Python进程都是一项…...
零基础怎么快速进行单细胞分析?
近一段时间正在努力学习单细胞相关的理论知识,发现单细胞测序和普通的真核细胞的转录组非常相似。两者之间的最大的区别在于,一个测的是单个细胞的表达,一个测的是一堆细胞的表达之和。所以从这里就可以理解,为什么网上很多教程都…...
力扣数据库题库学习(5.10日)--1965. 丢失信息的雇员
1965. 丢失信息的雇员 问题链接🐷 思路分析 先看问题的描述 编写解决方案,找到所有 丢失信息 的雇员 id。当满足下面一个条件时,就被认为是雇员的信息丢失:雇员的 姓名 丢失了,或者雇员的 薪水信息 丢失了返回这些…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
