当前位置:首页>python>2025全国青少年信息素养大赛复赛真题Python初中组|循环取模题

2025全国青少年信息素养大赛复赛真题Python初中组|循环取模题

  • 2026-09-10 03:01:16
2025全国青少年信息素养大赛复赛真题Python初中组|循环取模题

很多新手刚学取模运算(%)和列表下标时,都会卡在:天数和列表下标对不齐这个问题。

今天用一道超经典入门循环题,手把手带大家吃透两种写法:基础if判断版 + 极简一行列表版,彻底弄懂为什么要 (n-1)%4。


📌 题目原题

小明有4顶不同颜色帽子,固定顺序轮流佩戴:红R→黑B→橘O→白W,4天一个循环。

输入第n天,输出当天佩戴的帽子大写字母。

输入样例:2

输出样例:B


✅ 写法一:新手友好版(if分支,最容易理解)

零基础优先学这个,不用懂列表,纯靠取模判断余数,逻辑直白。

# 接收输入的天数n = int(input())# 4天一轮回,对天数取余数remain = n % 4if remain == 1:    print("R")elif remain == 2:    print("B")elif remain == 3:    print("O")else: # 余数为0,对应第4/8/12天    print("W")

💡 逻辑讲解

  • 第1/5/9天:余数1 → R

  • 第2/6/10天:余数2 → B

  • 第3/7/11天:余数3 → O

  • 第4/8/12天:余数0 → W

优点:逻辑直白,一眼看懂,适合刚学条件判断的新手

缺点:代码啰嗦,帽子越多,elif就要写越多


✅ 写法二:极简列表版(大佬常用,代码短)

很多同学看不懂这行代码:hats[(n - 1) % 4],下面零基础逐字拆解,看完绝对通透!

n = int(input())# 按顺序存放所有帽子hats = ["R", "B", "O", "W"]# 核心一行代码print(hats[(n - 1) % 4])

🔍 重点拆解:为什么一定要 n-1?(新手最大误区)

1、核心矛盾:人类天数 VS 电脑下标

✅ 我们人类计数:第1天、第2天、第3天、第4天(从1开始)

❌ 电脑列表下标:永远从0开始

列表位置(下标)
0
1
2
3
对应帽子
R
B
O
W
对应天数
第1天
第2天
第3天
第4天

👉 天数永远比列表下标 大1,所以必须 n-1 对齐位置!

2、为什么还要 %4 取模?

帽子4天循环一次,超过4天之后,需要自动回到第一个帽子:

  • 第5天本来n-1=4,4%4=0 → 回到下标0,重新戴R ✅

  • 第6天n-1=5,5%4=1 → 下标1,戴B ✅

3、全天数对照表(一看就懂)

输入天数n
n-1
(n-1)%4
最终帽子
1
0
0
R
2
1
1
B
3
2
2
O
4
3
3
W
5
4
0
R
8
7
3
W

⚠️ 新手高频踩坑点

千万不要直接写 n%4

如果直接用n%4当下标:第4天余数是0,会取到第一个帽子R,和题目答案完全相反,直接做题失分!


📝 总结一句话

  1. 人类从1计数,电脑列表从0计数,所有循环类题目,都要 数字-1 对齐下标

  2. 取模%就是用来做循环轮回,周期是几就对几取模

  3. 新手前期先用if版练逻辑,熟练之后再换成简洁列表版

下期更新:同款循环题型(星期判断、生肖判断),一通百通✨

需要Python新手刷题题库可以留言哦~

最新文章

随机文章