<p>您可以使用datetime和timedelta-将天添加到开始日期:</p>
<pre><code>import datetime
# 0 == Monday, 1== Tuesday .... the list is the list of lessons taught on that day
teach = {0: ["A","B"], 1:["C","D"],2:["E"],3:["A","E"], 4:["E","B","E"]}
# get a starting month
while True:
try:
month = int(input("Month [1-12]: "))
except:
continue
if 1 <= month <= 12:
break
# date to start at
start = datetime.datetime(2019,month,1)
# create all days of that month
m = [[date, teach.get(date.weekday())] # date + lessons
for date in (start + datetime.timedelta(days=n) for n in range(32)) # all days
if date.month == month] # only those that fit into the month
print()
for day in m:
print(day)
</code></pre>
<p>输出:</p>
<pre><code>Month [1-12]: 4
[datetime.datetime(2019, 4, 1, 0, 0), ['A', 'B']]
[datetime.datetime(2019, 4, 2, 0, 0), ['C', 'D']]
[datetime.datetime(2019, 4, 3, 0, 0), ['E']]
[datetime.datetime(2019, 4, 4, 0, 0), ['A', 'E']]
[datetime.datetime(2019, 4, 5, 0, 0), ['E', 'B', 'E']]
[datetime.datetime(2019, 4, 6, 0, 0), None]
[datetime.datetime(2019, 4, 7, 0, 0), None]
[datetime.datetime(2019, 4, 8, 0, 0), ['A', 'B']]
[datetime.datetime(2019, 4, 9, 0, 0), ['C', 'D']]
[datetime.datetime(2019, 4, 10, 0, 0), ['E']]
[datetime.datetime(2019, 4, 11, 0, 0), ['A', 'E']]
[datetime.datetime(2019, 4, 12, 0, 0), ['E', 'B', 'E']]
[datetime.datetime(2019, 4, 13, 0, 0), None]
[datetime.datetime(2019, 4, 14, 0, 0), None]
[datetime.datetime(2019, 4, 15, 0, 0), ['A', 'B']]
[datetime.datetime(2019, 4, 16, 0, 0), ['C', 'D']]
[datetime.datetime(2019, 4, 17, 0, 0), ['E']]
[datetime.datetime(2019, 4, 18, 0, 0), ['A', 'E']]
[datetime.datetime(2019, 4, 19, 0, 0), ['E', 'B', 'E']]
[datetime.datetime(2019, 4, 20, 0, 0), None]
[datetime.datetime(2019, 4, 21, 0, 0), None]
[datetime.datetime(2019, 4, 22, 0, 0), ['A', 'B']]
[datetime.datetime(2019, 4, 23, 0, 0), ['C', 'D']]
[datetime.datetime(2019, 4, 24, 0, 0), ['E']]
[datetime.datetime(2019, 4, 25, 0, 0), ['A', 'E']]
[datetime.datetime(2019, 4, 26, 0, 0), ['E', 'B', 'E']]
[datetime.datetime(2019, 4, 27, 0, 0), None]
[datetime.datetime(2019, 4, 28, 0, 0), None]
[datetime.datetime(2019, 4, 29, 0, 0), ['A', 'B']]
[datetime.datetime(2019, 4, 30, 0, 0), ['C', 'D']]
</code></pre>
<p>独行:</p>
<ul>
<li><a href="https://docs.python.org/3/library/datetime.html#datetime.date.weekday" rel="nofollow noreferrer">datetime.date.weekday()</a></li>
<li><a href="https://docs.python.org/3/library/datetime.html#timedelta-objects" rel="nofollow noreferrer">datetime.timedelta</a></li>
<li><a href="https://stackoverflow.com/questions/11041405/why-dict-getkey-instead-of-dictkey">Why dict.get(key) instead of dict[key]?</a></li>
<li><a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions" rel="nofollow noreferrer">list comprehensions</a></li>
</ul>
<p>你必须把学校停课的日子去掉——这只看工作日</p>