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

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

相关推荐
GuokLiu1 小时前
250708-通过两块硬盘拷贝DeepSeek两个满血版模型的bash脚本
开发语言·chrome·bash
冬天给予的预感2 小时前
DAY 54 Inception网络及其思考
网络·python·深度学习
钢铁男儿2 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
倔强的小石头_3 小时前
【C语言指南】函数指针深度解析
java·c语言·算法
Yasin Chen3 小时前
C# Dictionary源码分析
算法·unity·哈希算法
_Coin_-4 小时前
算法训练营DAY27 第八章 贪心算法 part01
算法·贪心算法
亿牛云爬虫专家6 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
iCxhust7 小时前
c# U盘映像生成工具
开发语言·单片机·c#
yangzhi_emo8 小时前
ES6笔记2
开发语言·前端·javascript
董董灿是个攻城狮8 小时前
5分钟搞懂什么是窗口注意力?
算法