使用循环和条件创建当月的日期和日期列表

Creating a list of days and dates of the month using loops and conditionals

提问人:Rebecca E 提问时间:10/6/2023 更新时间:10/8/2023 访问量:29

问:

我已经尝试了 3 天来使用互联网上的资源来解决这个问题,但仍然被难住了。我是 linux 和 python 的新手。谁能帮忙写这个,这样我就能看到我做错了什么?

“使用条件和循环,创建一个程序,从每月的 1 日开始,打印出您现在所在的月份的所有日子,并在整洁的列表中打印出日期和星期几。”

python-3.x 循环条件 语句

评论


答:

0赞 Cem Polat 10/6/2023 #1

下面是打印当前月份天数的示例

import calendar
import datetime

current_date = datetime.datetime.now()

year = current_date.year
month = current_date.month

num_days_in_month = calendar.monthrange(year, month)[1]

day_names = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

print(f"Days of {calendar.month_name[month]} {year}:")

for day in range(1, num_days_in_month + 1):
    current_day = datetime.date(year, month, day)
    day_of_week = current_day.weekday()
    print(f"{current_day.strftime('%d')} {day_names[day_of_week]}")

这是使用 if 和 elseif 的版本

import calendar
import datetime

current_date = datetime.datetime.now()

year = current_date.year
month = current_date.month

num_days_in_month = calendar.monthrange(year, month)[1]

day_names = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

print(f"Days of {calendar.month_name[month]} {year}:")

for day in range(1, num_days_in_month + 1):
    current_day = datetime.date(year, month, day)
    day_of_week = current_day.weekday()
    
    if day_of_week == 0:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[0]}")
    elif day_of_week == 1:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[1]}")
    elif day_of_week == 2:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[2]}")
    elif day_of_week == 3:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[3]}")
    elif day_of_week == 4:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[4]}")
    elif day_of_week == 5:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[5]}")
    elif day_of_week == 6:
        print(f"{current_day.strftime('%Y-%m-%d')} is a {day_names[6]}")

评论

0赞 Rebecca E 10/8/2023
这是一个很好的答案,它产生了一个很好的清单,谢谢!然而,我在问题的条件部分非常卡住了。当我把这段代码放在下面时,请好好(哈哈)我正在学习一个新学生。我想列出一个包含 if、elif 和 else 条件的列表。当我制作我的 for 循环时,它会循环,但会产生同一天的多次重复。我可以放一个“休息”,但它完全停止了循环,并且不再产生日期。这是我试图写的一个例子:
0赞 Rebecca E 10/8/2023
#Loop 当天的字典中 day.items() 中 key 的条目: #If 键不是 1、8 或 15,则打印键和值 if key != ['1' 和 '8' 和 '15' 和 '22' 和 '29']: print('Monday ' + 'October ' + monday['week12'] + ' 2023') else: pass #If key 不是 1、8 或 15,则打印键和值 if key != ['1' 和 '8' 和 '15' 和 '22' 和 '29' 和 '2']: print('星期一 ' + '十月 ' + 星期一['week29'] + ' 2023') 休息
0赞 Cem Polat 10/8/2023
我编辑了答案以添加带有条件的另一个版本的代码