2 回答

TA贡献1842条经验 获得超12个赞
monthdays = 30
day_index = 6
for i in range(monthdays):
day_index = (day_index + 1) % 7
day = weekdays[day_index]
print("day", i, day)
day_index 为 6,因为您从星期日开始,但您可以更改它。
也不需要调用str(i)inside print,它会为你做。

TA贡献1848条经验 获得超10个赞
您的问题是您尝试打印weekdays[7]时weekdays只有七个元素(即weekdays[0]to weekdays[6])。
有很多方法可以解决这个问题,但在这种情况下,最简单的就是最好的。
在您的循环中,使用weekdays[i % len(weekdays)]而不是weekdays[i].
模 (mod) 运算符在除其参数时找到产生的余数。这会产生循环行为。
n | n % 3 |
--+-------+
0 | 0 | 0 = 0 * 3 + [0]
1 | 1 | 1 = 0 * 3 + [1]
2 | 2 | 2 = 0 * 3 + [2]
3 | 0 | 3 = 1 * 3 + [0]
4 | 1 | 4 = 1 * 3 + [1]
5 | 2 |
6 | 0 |
7 | 1 |
8 | 2 |
9 | 0 |
因此,当您到达超过 长度的some_list索引时,索引i % len(some_list)将循环回 0 并让您继续前进。
添加回答
举报