当前位置: 首页 > news >正文

基于Python实现一个庆祝国庆节的小程序

功能:

  1. 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。
  2. 动态背景音乐:播放国庆节相关的背景音乐。
  3. 增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。
  4. 增强图形用户界面 (GUI):使用更多的 tkinter 控件,比如按钮、复选框等,使界面更加丰富和互动。

下面是一个更全面的示例代码,包括以上的改进:

完整代码示例

import tkinter as tk
from tkinter import PhotoImage, messagebox, StringVar, OptionMenu
from datetime import datetime
import random
import os
from pygame import mixer# 初始化 pygame 混音器
mixer.init()# 国庆节祝福语列表
blessings = ["🎉 国庆节快乐!🎉","🇨🇳 祝愿祖国繁荣昌盛,人民幸福安康!🇨🇳","🌟 庆祝国庆,祝您和您的家人幸福安康,万事如意!🌟","🏆 向伟大的祖国致敬,祝愿大家国庆节快乐!🏆","🎊 国庆佳节,愿你心想事成,家庭幸福!🎊"
]# 国庆节历史背景
history = ("国庆节(National Day),是中华人民共和国的国庆日,定于每年的10月1日。""这是庆祝中国成立的纪念日,1950年10月1日,毛泽东主席在天安门广场上宣布中华人民共和国的成立。""从那时起,每年10月1日,全国各地会举行盛大的庆祝活动,包括阅兵仪式、烟花表演以及各种文化活动。"
)# 小测验
quiz = {"国庆节是哪一天?": ["10月1日", "12月25日", "7月4日", "1月1日"],"中华人民共和国是哪一年成立的?": ["1949年", "1950年", "1960年", "1980年"]
}# 获取随机测验题目
def get_random_quiz():question, options = random.choice(list(quiz.items()))return question, optionsdef get_national_day_date(year):# 国庆节的日期为每年的10月1日return datetime(year, 10, 1)def display_message():# 随机选择一条祝福语message = random.choice(blessings)return messagedef play_music():# 播放背景音乐music_file = 'national_day_music.mp3'  # 确保你有这个音乐文件if os.path.isfile(music_file):mixer.music.load(music_file)mixer.music.play(-1)  # 循环播放else:print("未找到音乐文件,确保有'national_day_music.mp3'文件在当前目录")def stop_music():# 停止播放背景音乐mixer.music.stop()def show_gui():# 创建主窗口root = tk.Tk()root.title("国庆节庆祝")# 获取当前年份now = datetime.now()year = now.year# 获取今年国庆节的日期national_day_date = get_national_day_date(year)date_str = national_day_date.strftime('%Y年%m月%d日')# 创建并放置标签label_date = tk.Label(root, text=f"今年的国庆节日期是: {date_str}", font=("Arial", 14))label_date.pack(pady=10)label_message = tk.Label(root, text=display_message(), font=("Arial", 14))label_message.pack(pady=10)# 显示国庆节历史背景label_history = tk.Label(root, text="国庆节背景:", font=("Arial", 16, "bold"))label_history.pack(pady=10)text_history = tk.Text(root, height=5, width=50, wrap='word')text_history.insert('1.0', history)text_history.config(state='disabled')  # 使Text控件不可编辑text_history.pack(pady=10)# 添加国庆节相关的图片try:image = PhotoImage(file='national_day.png')  # 确保你有这个图片文件label_image = tk.Label(root, image=image)label_image.pack(pady=10)except tk.TclError:print("未找到图片文件,确保有'national_day.png'文件在当前目录")# 音乐控制music_var = StringVar(value="播放音乐")music_button = tk.Button(root, textvariable=music_var, command=lambda: play_music() if music_var.get() == "播放音乐" else stop_music())music_button.pack(pady=10)# 小测验def check_answer(answer):correct_answers = {"国庆节是哪一天?": "10月1日","中华人民共和国是哪一年成立的?": "1949年"}if answer == correct_answers[current_question.get()]:messagebox.showinfo("小测验", "回答正确!")else:messagebox.showinfo("小测验", "回答错误,请再试试。")def show_quiz():question, options = get_random_quiz()current_question.set(question)option_menu['menu'].delete(0, 'end')for option in options:option_menu['menu'].add_command(label=option, command=tk._setit(selected_option, option))current_question = StringVar()selected_option = StringVar()quiz_button = tk.Button(root, text="获取小测验", command=show_quiz)quiz_button.pack(pady=10)option_menu = OptionMenu(root, selected_option, "")option_menu.pack(pady=10)submit_button = tk.Button(root, text="提交答案", command=lambda: check_answer(selected_option.get()))submit_button.pack(pady=10)# 显示窗口root.mainloop()if __name__ == "__main__":show_gui()

代码解释:

  1. 音乐播放:使用 pygame.mixer 播放背景音乐。请确保你在程序目录下有一个名为 national_day_music.mp3 的音乐文件。如果没有音乐文件,可以删除相关的代码行。
  2. 小测验功能:添加了一个小测验功能,用户可以获取随机的测验题目,并选择答案。程序会告诉用户答案是否正确。
  3. 动态更新:用户可以点击按钮获取新的测验题目,选择答案,并提交。
  4. GUI 控件
    • 音乐播放控制:一个按钮用于播放或停止背景音乐。
    • 小测验部分:显示测验题目和选择答案的选项,用户可以选择并提交答案。

注意事项

  • 图片文件:确保图片文件 national_day.png 在程序运行的同一目录下。如果没有图片,可以删除或注释掉相关的代码行。
  • 音乐文件:确保音乐文件 national_day_music.mp3 在程序运行的同一目录下。如果没有音乐文件,可以删除或注释掉相关的代码行。

运行这个程序时,它将展示一个更丰富的界面,包括国庆节的日期、祝福信息、历史背景、相关图片、背景音乐播放控件和小测验功能。

相关文章:

基于Python实现一个庆祝国庆节的小程序

功能: 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐:播放国庆节相关的背景音乐。增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。增强图形用户界面 (GUI):…...

Anaconda 安装与使用教程

Anaconda 安装与使用教程 介绍 Anaconda 是一个用于科学计算的 Python 和 R 的发行版,它包含了众多流行的科学计算、数据分析、机器学习等领域的库。本教程旨在帮助初学者快速上手 Anaconda,并学会如何使用其管理环境以及安装包。 第一步:…...

时序预测SARIMAX模型

1. 项目背景 本文基于kaggle平台相关竞赛项目,具体连接如下: Time Series Forecasting With SARIMAX 基本信息如内容说明、数据集、已提交代码、当前得分排名以及比赛规则等,如图【1】所示,可以认真阅读。 图 1 2. 数据读取 …...

gin集成jaeger中间件实现链路追踪

1. 背景 新业务线带来新项目启动,需要改进原有项目的基础框架和组件能力,以提升后续开发和维护效率。项目搭建主要包括技术选型、框架搭建、基础服务搭建等。这其中就涉及到链路追踪的内容,结合其中的踩坑情况,用一篇文章来说明完…...

前端层面----监控与埋点

前言: 站在产品的视角,经常会问如下几个问题: 产品有没有用户使用 用户用得怎么样 系统会不会经常出现异常 如何更好地满足用户需求服务用户 当站在技术视角时,经常会问如下几个问题: 系统出现异常的频率如何 异常…...

linux Command

linux Command 1. 系统监控命令 1.1 top top [param] top -H -p pid,查看进程pid下面的子线程。-b以处理模式操作-c显示完整的命令行而不只是显示命令名。-d 屏幕刷新间隔时间。-l 忽略失效过程。-s 保密模式。-S 累积模式。-u 【用户名】 指定用户名。-p 【进程…...

uniapp登录页面( 适配:pc、小程序、h5)

<!-- 简洁登录页面 --> <template><view class"login-bg"><image class"img-a" src"https://zhoukaiwen.com/img/loginImg/2.png"></image><image class"img-b" src"https://zhoukaiwen.com/im…...

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中&#xff0c;各行各业对数据库系统的需求各有侧重。举例来说&#xff0c;金融风控领域对数据库的高效事务处理&#xff08;TP&#xff09;和分析处理&#xff08;AP&#xff09;能力有着严格要求&#xff1b;游戏行业则更加注重文档数据库的灵活性和性…...

快速git

下载 sudo apt install git配置 $ git config --global user.name "John Doe" $ git config --global user.email johndoeexample.com没有空格可以不加双引号如果~/.ssh没有先创建&#xff08;下一步用&#xff09; ssh方式制作密钥 github解释 #以邮箱作为标签…...

欺诈文本分类检测(十四):GPTQ量化模型

1. 引言 量化的本质&#xff1a;通过将模型参数从高精度&#xff08;例如32位&#xff09;降低到低精度&#xff08;例如8位&#xff09;&#xff0c;来缩小模型体积。 本文将采用一种训练后量化方法GPTQ&#xff0c;对前文已经训练并合并过的模型文件进行量化&#xff0c;通…...

2024.9.14(RC和RS)

一、replicationcontroller &#xff08;RC&#xff09; 1、更改镜像站 [rootk8s-master ~]# vim /etc/docker/daemon.json {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io",&…...

【算法随想录04】KMP 字符串匹配算法

这是字符串模式匹配经典算法。 给定一个文本 t 和一个字符串 s&#xff0c;我们尝试找到并展示 s 在 t 中的所有出现&#xff08;occurrence&#xff09;。 #include<bits/stdc.h>using namespace std;vector<int> KMP(string s) {int n s.size();vector<int&g…...

TCP和MQTT通信协议

协议分层 网络分层 协议应用层 Co AP MQTT HTTP传输层 UDP TCP网络层 IP链路层 Enternet 网络分层中最…...

Python Pickle 与 JSON 序列化详解:存储、反序列化与对比

Python Pickle 与 JSON 序列化详解&#xff1a;存储、反序列化与对比 文章目录 Python Pickle 与 JSON 序列化详解&#xff1a;存储、反序列化与对比一 功能总览二 Pickle1 应用2 序列化3 反序列化4 系统资源对象1&#xff09;不能被序列化的系统资源对象2&#xff09;强行序列…...

第二百三十二节 JPA教程 - JPA教程 - JPA ID自动生成器示例、JPA ID生成策略示例

JPA教程 - JPA ID自动生成器示例 我们可以将id字段标记为自动生成的主键列。 数据库将在插入时自动为id字段生成一个值数据到表。 例子 下面的代码来自Person.java。 package cn.w3cschool.common;import javax.persistence.Entity; import javax.persistence.GeneratedValu…...

计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】

一、以快递网络来引入分层思想 1.1 “分层” 的设计思想【将庞大而复杂的问题&#xff0c;转化为若干较小的局部问题】 从我们最熟悉的快递网络出发&#xff0c;在你家附近会有一个快递终点站A&#xff0c;在其他的城市&#xff0c;也会有这种快递终点站&#xff0c;比如说快递…...

Vite + Electron 时,Electron 渲染空白,静态资源加载错误等问题解决

问题 如果在 electron 里直接引入 vite 打包后的东西&#xff0c;那么有些资源是请求不到的 这是我的引入方式 根据报错&#xff0c;我们来到 vite 打包后的路径看一看 &#xff0c;修改一下 dist 里的文件路径试了一试 修改后的样子&#xff0c;发现是可以的了 原因分析 …...

ZAB协议(算法)

一、ZAB&#xff08;ZooKeeper Atomic Broadcast&#xff09;介绍 ZAB 即 ZooKeeper Atomic Broadcast&#xff0c;是 ZooKeeper 实现分布式数据一致性的核心算法。它是一种原子广播协议&#xff0c;用于确保在分布式环境中&#xff0c;多个 ZooKeeper 服务器之间的数据一致性。…...

多个音频怎么合并?把多个音频合并在一起的方法推荐

多个音频怎么合并&#xff1f;无论是制作连贯的播客节目还是将音乐片段整合成专辑&#xff0c;音频合并已成为许多创作者的常见需求。通过有效合并音频&#xff0c;可以显著提升项目的整体质量&#xff0c;确保内容的连续性和一致性。然而&#xff0c;合并后的文件通常比原始单…...

【Django】Django Class-Based Views (CBV) 与 DRF APIView 的区别解析

Django Class-Based Views (CBV) 与 DRF APIView 的区别解析 在 Django 开发中&#xff0c;基于类的视图&#xff08;Class-Based Views, CBV&#xff09;是实现可重用性和代码结构化的利器。而 Django REST Framework (DRF) 提供的 APIView 是针对 API 开发的扩展。 一、CBV …...

如何增加Google收录量?

想增加Google收录量&#xff0c;首先自然是你的页面数量就要多&#xff0c;但这些页面的内容也绝对不能敷衍&#xff0c;你的网站都没多少页面&#xff0c;谷歌哪怕想收录都没办法&#xff0c;当然&#xff0c;这是一个过程&#xff0c;持续缓慢的增加页面&#xff0c;增加网站…...

leetcode练习 格雷编码

n 位格雷码序列 是一个由 2n 个整数组成的序列&#xff0c;其中&#xff1a; 每个整数都在范围 [0, 2n - 1] 内&#xff08;含 0 和 2n - 1&#xff09;第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 &#xff0c;且第一个 和 最后一…...

【LLM:Gemini】文本摘要、信息提取、验证和纠错、重新排列图表、视频理解、图像理解、模态组合

开始使用Gemini 目录 开始使用Gemini Gemini简介 Gemini实验结果 Gemini的多模态推理能力 文本摘要 信息提取 验证和纠错 重新排列图表 视频理解 图像理解 模态组合 Gemini多面手编程助理 库的使用 引用 本文概述了Gemini模型和如何有效地提示和使用这些模型。本…...

CMS之Wordpress建设

下载 https://cn.wordpress.org/ 宝塔安装Wordpress 创建网站 上传文件、并解压、剪切文件到项目根目录 安装 -> 数据库信息 -> 标题信息 http://wordpress.xxxxx.com 登录 http://wordpress.xxxxxxxxx.com/wp-admin/ 1. 主题(模板) wordpress-基本使用-02-在主题…...

使用Neo4j存储聊天记录的简单教程

引言 在当今的数据驱动世界中&#xff0c;关系型数据库有时难以处理复杂的、相互关联的数据集。Neo4j作为一款开源图数据库&#xff0c;以其高效管理高连接数据的能力而广受欢迎。本篇文章将详细介绍如何使用Neo4j来存储聊天信息历史&#xff0c;引导您在实际项目中利用其强大…...

前端面试常考算法

快速排序 #include<iostream> #include<cstdio> using namespace std; const int N 100005; int a[N];void quick_sort(int a[], int l, int r) {if (l > r) return;int x a[l r >> 1];int i l - 1, j r 1;while (i < j) {while (a[i] < x);…...

【机试准备】常用容器与函数

Vector详解 原文链接&#xff1a;【超详细】C vector 详解 例题&#xff0c;这一篇就够了-CSDN博客 向量&#xff08;Vector&#xff09;是一个封装了动态大小数组的顺序容器&#xff08;Sequence Container&#xff09;。跟任意其它类型容器一样&#xff0c;它能够存放各种…...

Base 社区见面会 | 新加坡站

活动信息 备受期待的 Base 社区见面会将于 Token2049 期间在新加坡举行&#xff0c;为 Base 爱好者和生态系统建设者提供一个独特的交流机会。本次活动由 DAOBase 组织&#xff0c;Base 和 Coinbase 提供支持&#xff0c;并得到了以下合作伙伴的大力支持&#xff1a; The Sand…...

麒麟操作系统搭建Nacos集群

Nacos 集群搭建 2.4.2 环境介绍 操作系统Kylin Linux Advanced Server V10 (Lance)Kylin Linux Advanced Server V10 (Lance)Kylin Linux Advanced Server V10 (Lance)内核版本Linux 4.19.90-52.22.v2207.ky10.aarch64Linux 4.19.90-52.22.v2207.ky10.aarch64Linux 4.19.90-52…...

Imagination推出性能最高且具有高等级功能安全性的汽车GPU IP

Imagination DXS GPU 进一步扩大其在汽车领域的领先地位 产品亮点 &#xff1a; 峰值性能比 Imagination 上一代汽车 GPU 提高了 50%&#xff0c;可扩展至 192GPixel/s、6 TFLOPS 和 24TOPS计算工作负载的性能提升多达十倍引入创新的分布式功能安全机制&#xff0c;以最小的…...