Python编程,输入年月,在turtle画板上输出万年日历
时间: 2024-09-19 21:11:23 浏览: 84
在Python中,我们可以利用`turtle`库创建一个简单的图形界面,结合`calendar`模块来绘制万年日历。首先,需要导入必要的模块,然后获取用户输入的年份和月份,接着生成该月份的日历,并在画布上显示出来。以下是一个简单的示例:
```python
import turtle
from calendar import monthrange
# 创建画笔
window = turtle.Screen()
pen = turtle.Turtle()
def draw_calendar(year, month):
# 设置画布大小和背景颜色
window.bgcolor("white")
pen.speed(0) # 加快绘图速度
# 根据输入的年月计算总天数和星期几
days_in_month, first_day = monthrange(year, month)
# 绘制月份标题
pen.penup()
pen.goto(-60, -150 + (month % 2 * 40))
pen.pendown()
pen.write(f"{year} {month_name(month)}", align="center")
# 循环绘制每一天
for day_num in range(1, days_in_month+1):
pen.penup()
x_pos = 60 * day_num
y_pos = -150 + (month % 2 * 40) - 30 * day_num
pen.goto(x_pos, y_pos)
if day_num == 1 or day_num % 7 == 0: # 首行首列加上边框
pen.pensize(3)
else:
pen.pensize(1)
if day_num == first_day: # 高亮标记第一天
pen.color("red")
elif day_num in holidays: # 如果这一天是假期,用其他颜色
pen.color("green")
else:
pen.color("black") # 默认黑色
pen.dot() # 画圆点表示日期
# 获取当前年月作为默认值,也可以让用户输入
year = int(input("请输入年份(例如:2023):"))
month = int(input("请输入月份(1-12):"))
# 将月份转换为对应的英文名称
month_name = {
1: "January",
2: "February",
3: "March",
4: "April",
5: "May",
6: "June",
7: "July",
8: "August",
9: "September",
10: "October",
11: "November",
12: "December"
}[month]
holidays = [] # 这里可以添加假期列表,如果有的话
draw_calendar(year, month)
window.exitonclick() # 点击屏幕关闭窗口
阅读全文
相关推荐

















