十四届蓝桥杯STEMA考试Python真题试卷第二套第二题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套 编程第二题。虽然不建议,但是我们还是给出一行代码的实现,以展现Python的简洁。

题目描述:

空调遥控器上的模式按钮可控制四种模式的切换。空调的初始模式为制热模式,第一次按下按钮变为制冷模式,第二次按下按钮变为睡眠模式,第三次按下按钮变为除湿模式,第四次按下按钮变为制热模式,第五次按下按钮变为制冷模式,以此类推。请计算出按下 N 次按钮后,空调为何种模式。

输入描述:

输入一个正整数 N(1<N<1000),表示按下空调遥控器的模式按钮的次数(初始模式为制热模式)

输出描述:

输出一个大写字母,当按下模式按钮 N 次后,空调为制热模式则输出"R",为制冷模式则输出"L",为睡眠模式则输出"S",为除湿模式则输出"C"。

样例输入:

5

样例输出:

L

参考答案:

python 复制代码
def get_ac_mode(n):
    # 定义模式序列(R-制热,L-制冷,S-睡眠,C-除湿)
    modes = ['R', 'L', 'S', 'C']
    
    # 由于模式是循环的,我们可以使用取余运算
    # n-1是因为我们要从初始状态开始计算
    # 初始状态是R,按一次变L,所以要减1
    mode_index = n % len(modes)
    
    return modes[mode_index]

def main():
    # 读取按键次数N
    n = int(input())
    
    # 获取并输出最终模式
    result = get_ac_mode(n)
    print(result)

if __name__ == "__main__":
    main()

代码说明:

这个程序的工作原理是:

  1. 使用列表存储四种模式:'R'(制热)、'L'(制冷)、'S'(睡眠)、'C'(除湿)
  2. 使用取余运算来处理循环模式

使用示例:

复制代码
输入:5
输出:L

解释过程:

  1. 初始状态为制热®
  2. 第1次按:制冷(L)
  3. 第2次按:睡眠(S)
  4. 第3次按:除湿©
  5. 第4次按:制热®
  6. 第5次按:制冷(L)

当输入N=5时,经过5次按键后,空调处于制冷模式,所以输出"L"。

需要注意的是:

  • 输入N必须是正整数
  • 程序已经考虑了循环性,可以处理任意小于1000的正整数
  • 输出为对应模式的大写字母

这个解决方案即使输入很大的数字也能快速计算出结果,因为使用了取余运算来处理循环。

让我们再尝试写一个一行代码的实现方式,来展示一下Python语言"简洁"的魅力:

python 复制代码
print(['R', 'L', 'S', 'C'][int(input()) % 4])

这行代码完成了相同的功能,解释一下:

  1. input() 读取输入的数字
  2. int() 将输入转换为整数
  3. -1 因为是从初始状态开始计算
  4. % 4 对4取余来处理循环
  5. 用得到的余数作为索引从列表 ['R', 'L', 'S', 'C'] 中获取对应的模式
  6. print() 输出结果

这种写法虽然简洁,但相比之前的完整实现可能不太容易理解和维护。建议在实际项目中使用更清晰的多行实现方式。

相关推荐
栈溢出了5 分钟前
LangGraph State、节点与动态路由学习笔记
python
一条破秋裤5 分钟前
01_字符设备基本概念_从分类到LED控制链路
开发语言·php
罗湖老棍子7 分钟前
荒岛野人(信息学奥赛一本通- P1637)(洛谷-P2421)
算法·数论·枚举·裴蜀定理·扩展欧几里得·扩展中国剩余定理
用户019027581619 分钟前
A 股代码后缀 .SH/.SZ/.BJ 怎么区分?Python 怎么统一处理沪深京港美股代码?
python
朝朝辞暮i12 分钟前
C++ 第 40 章:ROS2 Publisher + Timer + Subscriber + Callback + Executor 完整闭环
开发语言·c++·算法·ros2
400分19 分钟前
具身智能系列之从零到「机械臂会放试管」:π0.5 VLA 真机部署完全指南【第一节】
算法
专注仿真22 分钟前
决策树的算法
开发语言·高性能算法
Evand J23 分钟前
【电机滤波例程2】负载转矩增广扩展卡尔曼滤波(EKF)原理与MATLAB例程:五维PMSM状态与负载阶跃估计。订阅专栏后可查看完整代码
开发语言·matlab·电机·ekf·卡尔曼滤波
迅猛龙办公室27 分钟前
python实现简单进度条
java·前端·python
小宋102129 分钟前
一套服务托管多个 LoRA:适配器加载、租户隔离与热切换实战
大数据·人工智能·算法