python在列表上循环(显示工作日的总30天)
我想显示工作日的总30天,有人能告诉我如何在for或while循环中这样做吗?谢谢 我想要的输出是:python在列表上循环(显示工作日的总30天),python,Python,我想显示工作日的总30天,有人能告诉我如何在for或while循环中这样做吗?谢谢 我想要的输出是: list = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] 我的代码: day 0 : Sun day 1 : Mon day 2 : Tue day 3 : Wed day 4 : Thu day 5 : Fri day 6 : Sat day 7 : Sun day 8 : Mon day 9 : Tue day 10 : Wed da
list = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
我的代码:
day 0 : Sun
day 1 : Mon
day 2 : Tue
day 3 : Wed
day 4 : Thu
day 5 : Fri
day 6 : Sat
day 7 : Sun
day 8 : Mon
day 9 : Tue
day 10 : Wed
day 11 : Thu
day 12 : Fri
...
...
day 30 :
错误:
a = 0
for i in range(0,30):
print("Day",str(i),list[a])
a += 1
回溯(最近一次呼叫最后一次):
文件“tracker.py”,第25行,在
打印(“日”,str(i),工作日[日编号])
索引器:列表索引超出范围
monthdays=30
日指数=6
对于范围内的i(月日):
日指数=(日指数+1)%7
日=工作日[日索引]
打印(“日”,i,日)
day_指数是6,因为你从星期天开始,但你可以改变它
此外,无需在
print
内部调用str(i)
,它会为您执行此操作。您的问题是,您试图打印工作日[7]
,而工作日
只有七个元素(即工作日[0]
到工作日[6]
)
有很多方法可以解决这个问题,但在这种情况下,最简单的方法是最好的
在循环中,使用工作日[i%len(工作日)]
而不是工作日[i]
查找在分割其参数时生成的剩余值。这会产生循环行为
Traceback (most recent call last):
File "tracker.py", line 25, in <module>
print("Day",str(i),weekdays[day_number])
IndexError: list index out of range
因此,当你到达超过
some_list
长度的索引时,一个i%len(some_list)
的索引将循环回到0,让你继续前进。要求家庭作业帮助的问题必须包括你迄今为止为解决问题所做工作的总结,以及你解决问题的困难的描述。请阅读你的文章。你的错误信息实际上不是来自你发布的代码。请提供您的代码生成的实际错误消息,并以a.的形式完整发布相同的代码。基本上,a
=i
,因为您在循环中增加了a
<代码>列表的长度为7,因此当a
变为>=7时,list[a]
尝试访问列表末尾以外的元素(错误消息告诉您)。您应该添加一个测试,以便在=7时将a
重置为0。您可以使用工作日[i%7]
而不是将day\u index
作为单独的变量。(不管怎样,你都不想把+1
放在那里;这会在周六开始输出。)是的,你是对的,没有注意到工作日的定义,并假设列表从周一开始:)
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 |