2 回答

TA貢獻1842條經驗 獲得超13個贊
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 并讓您繼續前進。
添加回答
舉報