当前位置:首页>python>Python编程小技巧--新年倒计时小工具2.0版

Python编程小技巧--新年倒计时小工具2.0版

  • 2026-09-04 04:22:51
Python编程小技巧--新年倒计时小工具2.0版
接上篇倒计时小工具,Python编程小技巧--新年倒计时小工具现在升级到了有简单图形界面的2.0版本
先看展示效果,大概是下面的样子,会动态倒计时
可运行代码如下(可直接运行看到动态效果),下面再解释
import matplotlib.pyplot as pltimport matplotlib.animation as animationimport datetime# 目标时间target = datetime.datetime(2026217000)# 创建图形fig, ax = plt.subplots(figsize=(104))ax.axis('off')fig.patch.set_facecolor('#0d0d23')ax.set_facecolor('#0d0d23')# 标题title = ax.text(0.50.75f"Countdown to New Year",                ha='center', va='center', fontsize=22, color='gold', fontweight='bold')# 倒计时数字(大字)text = ax.text(0.50.45'', ha='center', va='center', fontsize=20,               color='white', fontfamily='monospace', fontweight='bold')# 单位提示(小字)units = ax.text(0.50.25,                'Days   Hours   Minutes   Seconds',                ha='center', va='center', fontsize=14, color='lightgray')def update(frame):    # 每次更新都重新计算剩余时间    now = datetime.datetime.now()    delta = target - now    if delta.total_seconds() > 0:        total_sec = int(delta.total_seconds())        days = total_sec // (24*3600)        hours = (total_sec % (24*3600)) // 3600        minutes = (total_sec % 3600) // 60        seconds = total_sec % 60        # 格式化为 DD : HH : MM : SS        countdown_str = f"{days:03d}days : {hours:02d}h : {minutes:02d}m : {seconds:02d}s"        text.set_text(countdown_str)        text.set_color('cyan' if seconds % 2 == 0 else 'lightgreen')  # 轻微闪烁效果    else:        text.set_text("HAPPY NEW YEAR!")        text.set_color('gold')        units.set_text("")    return text, units# 每1000ms(1秒)刷新一次;repeat=False 表示播完不循环anim = animation.FuncAnimation(fig, update, interval=1000, blit=True, repeat=False)plt.tight_layout()plt.show()
原理还是利用matplotlib下的animation来实现。关于这个还可以看下面几篇文章
Python编程小技巧--‌游戏开发中的动画帧循环
Python编程小技巧--冒泡排序的动态演示
Python编程小技巧--画出动态正弦波
核心代码部分的原理为
anim = animation.FuncAnimation(fig, update, interval=1000, blit=True, repeat=False)

参数

含义

fig

要刷新的 Figure 对象

update

回调函数

interval=1000

刷新间隔 1000ms = 1 秒

blit=True

开启“局部重绘”优化

repeat=False

倒计时结束后停止


推荐合集

推荐文章

最新文章

随机文章