十四届蓝桥杯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() 输出结果

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

相关推荐
VALENIAN瓦伦尼安教学设备28 分钟前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
小小晓.34 分钟前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
人机(未转人工)42 分钟前
python 批量测试ip是否能ping( 多线程 )
python
cndes1 小时前
安装Miniconda+Jupyter notebook
ide·python·jupyter
怕浪猫1 小时前
用了两年 AI 编程工具后,我重新理解了什么是「资深工程师」
算法·面试·架构
Patrick在香港1 小时前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
for_ever_love__1 小时前
python基础语法学习: 正则表达式
python·学习·正则表达式
aiqianji1 小时前
功能全面的教AI短篇小说写作的软件都有哪些?
人工智能·python
hetao17338371 小时前
2026-08-27~29 hetao1733837 的刷题记录
c++·算法
格林威1 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机