基于Python实现一个庆祝中秋节的小程序
功能包括:
- 使用复杂的库来计算农历日期:可以使用
lunarcalendar
库来计算农历日期。 - 提供更多的祝福语:可以通过随机选择祝福语来增加趣味性。
- 加入图形用户界面 (GUI):可以使用
tkinter
库来创建一个简单的图形用户界面。
我们可以将这些功能结合到一个程序中。以下是一个扩展的示例:
安装依赖
首先,你需要安装 lunarcalendar
库。可以通过以下命令安装:
pip install lunarcalendar
完整代码示例
import tkinter as tk
from tkinter import messagebox
from datetime import datetime
from lunarcalendar import Converter, DateNotExist
import random# 祝福语列表
blessings = ["🎉 中秋节快乐!🎉","🌕 月圆人圆,祝愿大家团团圆圆,幸福美满!🌕","🏮 祝您中秋快乐,家庭幸福!🏮","🍂 愿你的生活像满月一样圆满!🍂","🌟 中秋佳节,祝您万事如意!🌟"
]def get_mid_autumn_date(year):try:# 获取农历8月15日的公历日期lunar_date = Converter().lunar_to_solar(year, 8, 15)return lunar_dateexcept DateNotExist:return Nonedef display_message():# 随机选择一条祝福语message = random.choice(blessings)return messagedef show_gui():# 创建主窗口root = tk.Tk()root.title("中秋节祝福")# 获取当前年份now = datetime.now()year = now.year# 获取今年中秋节的日期mid_autumn_date = get_mid_autumn_date(year)if mid_autumn_date:date_str = mid_autumn_date.strftime('%Y年%m月%d日')else:date_str = "日期无法计算"# 显示祝福信息message = display_message()# 创建并放置标签label_date = tk.Label(root, text=f"今年的中秋节日期是: {date_str}", font=("Arial", 14))label_date.pack(pady=10)label_message = tk.Label(root, text=message, font=("Arial", 14))label_message.pack(pady=10)# 显示窗口root.mainloop()if __name__ == "__main__":show_gui()
代码解释:
- 计算农历日期:使用
lunarcalendar
库的Converter
类来将农历8月15日转换为公历日期。 - 祝福语:使用
random.choice
从预定义的祝福语列表中随机选择一条祝福语。 - 图形用户界面 (GUI):使用
tkinter
创建一个简单的窗口,显示中秋节日期和祝福信息。
运行程序
运行这个程序时,它会弹出一个窗口,显示今年中秋节的日期和一条随机的祝福语。这样,你可以在节日里为自己和他人带来一些节日的欢乐。
希望这个扩展版程序符合你的需求!如果你有其他要求或者想进一步修改,请告诉我。
相关文章:
基于Python实现一个庆祝中秋节的小程序
功能包括: 使用复杂的库来计算农历日期:可以使用 lunarcalendar 库来计算农历日期。提供更多的祝福语:可以通过随机选择祝福语来增加趣味性。加入图形用户界面 (GUI):可以使用 tkinter 库来创建一个简单的图形用户界面。 我们可…...

近期最值得买的数码好物有什么?2024兼具功能和实用性的好物分享
在如今这个科技飞速发展的时代,数码好物层出不穷,它们为我们带来了前所未有的便捷与乐趣。而对于学生党和上班族来说,挑选到既实用又性价比高的数码好物,更是能为学习和办公生活增添一抹亮丽的色彩。其中,电容笔便是备…...
云服务器中的MinIO 配置 HTTPS 过程(图文)
目录 1. 基本知识2. 实战3. 彩蛋1. 基本知识 具体证书的格式如下: 私钥:private.key公钥:public.crt (公钥以pem格式结尾,可直接改为crt格式)证书和私钥文件的命名和路径应该是: 证书文件: ~/.minio/certs/public.crt 私钥文件: ~/.minio/certs/private.key使用了自定义…...

注册安全分析报告:熊猫频道
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

计算机毕业设计 自习室座位预约系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

2000-2021年3月海关数据库
2000-2021年3月海关数据库 1、时间:2000-2021年3月 2、指标:2000-2015数据变量包括:年份、截止日期、进出口分类代码、进出口分类名称、HS商品编码、HS商品名称、金额_美元、数量、价格、经营单位代码、经营单位名称、经营单位地址、电话、…...

【YashanDB知识库】archivelog磁盘满导致数据库abnormal
本文转自YashanDB官网,具体内容可见archivelog磁盘满导致数据库abnormal 【问题分类】功能使用 【关键字】磁盘空间满,archivelog日志,archivelog自动清理 【问题描述】数据库状态变更为abnormal,检查V$DIAG_INCIDENT视图&#…...

远程跨境传输大文件如何做到安全又稳定?
在当今全球化的商业环境中,企业跨境传输大文件的需求日益增长。这不仅涉及到数据的快速迁移,还包括了安全性、稳定性和合规性等多重挑战。本文将探讨企业在跨境传输大文件时可能遇到的问题,以及在传输过程中应注意的事项,并重点介…...
JSON报文根据正则过滤消息
有时候业务系统在接收外部传过来的JSON报文,可能需要根据某个标识来判断是否是自己系统的消息,不是需要过滤。正常我们可能是先将JSON反序列化为具体实体类(例: A a JSON.parseObject(body,A.class)),然后获取具体字段来判断。此方法面对接收…...
BOM编程
什么是 BOM? BOM(Browser Object Model)是浏览器提供的对象和方法的集合,允许开发者操作浏览器窗口、页面跳转、URL、浏览器历史记录、用户设备信息等。window 对象是 BOM 的顶层对象,所有 BOM API 都直接或间接作为 …...

【C++ Primer Plus习题】16.1
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <string> usin…...

音视频入门基础:AAC专题(1)——AAC官方文档下载
一、AAC简介 高级音频编码(英语:Advanced Audio Coding,AAC)是有损音频压缩的专利数字音频编码标准,由Fraunhofer IIS、杜比实验室、贝尔实验室、Sony、Nokia等公司共同开发。出现于1997年,为一种基于MPEG…...
RAG与LLM原理及实践(17)---Docker Redis Python Usage
目录 背景 Redis 环境 download 修改镜像 Run Redis Coding python redis download 基本使用 描述 完整代码 运行结果 高阶用法 序列化的方式 Snapshot 与 AOF 快照(RDB) AOF(Append-Only File) 代码 总结 发布与订阅 描述 代码 运行结果 注…...

技术分享-商城篇-营销模块-优惠券种类(二十六)
前言 在之前的文章技术分享-商城篇-优惠券管理-功能介绍及种类(二十四) ,有对优惠券设计做了阐述,优惠券作为一种强大的促销工具,不仅能够吸引新客户,还能促进现有客户的复购与订单金额的提升。但是优惠券…...

Apache-wed服务器环境的安装
一。安装httpd并且开启httpd yum install httpd systemctl start httpd 二。关闭防火墙 systemctl stop firewall 三。常规配置wed服务 mkdir /www vim index.html(里面写入自己的内容) chmod 755 index.htm chmod 755 /www vim /etc/httpd/co…...

HR8870:可PWM控制,4.5A直流有刷电机驱动数据手册
HR8870芯片描述 HR8870是一款直流有刷电机驱动器,适用于打印机、电器、工业设备以及其他小型机器。两个逻辑输入控制H桥驱动器,该驱动器由四个N-MOS组成,能够以高达4.5A的峰值电流双向控制电机。利用电流衰减模式,可通过对输入进行…...

3D点云目标检测数据集标注工具 保姆级教程——CVAT (附json转kitti代码)
前言: 笔者尝试过很多3D标注软件都遇到很多问题,例如CloudCompare不适合做3D目标检测的数据集而且分割地面的时很繁琐;labelCloud没有三视图,视角难以调整标得不够精确;SUSTechPOINTS换帧麻烦、输出时存储在docker里面…...

获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组
一,前言 有zabbix监控,也并不是时刻盯着数据,所以想着,每天固定某个时刻,自动发送服务器数据到指定群组,给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档:https://www.z…...

【spring】maven引入okhttp的日志拦截器打开增量注解进程
HttpLoggingInterceptor 是在logging-interceptor库中的:这个logging库老找不到 import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor;发现这仨是独立的库 pom中三个依赖 <!-- OKHTTP3 --><...

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台
在当今高速发展的信息技术领域,特别是对于那些致力于前沿科技探索与实践的高校而言,拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台(Data Network Development Platform,简称DNDP)&am…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
深度解析云存储:概念、架构与应用实践
在数据爆炸式增长的时代,传统本地存储因容量限制、管理复杂等问题,已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性,成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理,云存储正重塑数据存储与…...
计算机系统结构复习-名词解释2
1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...

VSCode 没有添加Windows右键菜单
关键字:VSCode;Windows右键菜单;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意,实际使用的时候发现 VSCode 在 Windows 菜单栏…...

二维数组 行列混淆区分 js
二维数组定义 行 row:是“横着的一整行” 列 column:是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...