本文目录导读:

我来帮你编写一个闹钟提醒脚本,根据你的需求,我提供几个不同复杂程度的实现方案:
简单命令行闹钟(Python)
import time
import winsound # Windows系统
# import os # macOS/Linux: os.system('say "时间到了"')
def simple_alarm(target_time, message="时间到了!"):
"""简单的命令行闹钟"""
print(f"闹钟已设置,将在 {target_time} 提醒")
print(f"提醒内容: {message}")
while True:
current_time = time.strftime("%H:%M")
if current_time == target_time:
print(f"\n⏰ 时间到!{message}")
# Windows蜂鸣声
for _ in range(3):
winsound.Beep(1000, 500) # 频率1000Hz,持续500ms
# macOS: os.system('say "时间到了"')
break
time.sleep(30) # 每30秒检查一次
# 使用示例
if __name__ == "__main__":
# 设置闹钟时间(24小时制)
simple_alarm("14:30", "该开会了!")
功能完整的闹钟程序
import time
import datetime
import winsound
import threading
from plyer import notification # 需要安装: pip install plyer
class AlarmClock:
def __init__(self):
self.alarms = []
self.running = True
def add_alarm(self, hour, minute, message="闹钟提醒", repeat=False):
"""添加闹钟"""
alarm_time = f"{hour:02d}:{minute:02d}"
self.alarms.append({
'time': alarm_time,
'message': message,
'repeat': repeat,
'triggered': False
})
print(f"✅ 闹钟已设置: {alarm_time} - {message}")
def check_alarm(self):
"""检查闹钟是否到时间"""
current_time = time.strftime("%H:%M")
for alarm in self.alarms:
if alarm['time'] == current_time and not alarm['triggered']:
self.trigger_alarm(alarm)
if alarm['repeat']:
alarm['triggered'] = False # 重复闹钟重置
else:
alarm['triggered'] = True
def trigger_alarm(self, alarm):
"""触发闹钟"""
print(f"\n⏰ {alarm['message']}")
# 播放声音
for _ in range(5):
winsound.Beep(800, 300)
time.sleep(0.1)
# 桌面通知
try:
notification.notify(
title="⏰ 闹钟提醒",
message=alarm['message'],
timeout=10
)
except:
pass # 如果不支持通知,继续执行
def run(self):
"""运行闹钟"""
print("🕐 闹钟程序启动中...")
print("按 Ctrl+C 停止程序\n")
try:
while self.running:
self.check_alarm()
time.sleep(30) # 每30秒检查一次
except KeyboardInterrupt:
print("\n👋 闹钟程序已停止")
self.running = False
# 使用示例
if __name__ == "__main__":
clock = AlarmClock()
# 添加闹钟
clock.add_alarm(14, 30, "下午会议", repeat=True) # 每天下午2:30
clock.add_alarm(9, 0, "开始工作", repeat=True) # 每天早上9:00
clock.add_alarm(18, 0, "下班时间", repeat=True) # 每天下午6:00
# 启动闹钟
clock.run()
高级GUI闹钟(使用tkinter)
import tkinter as tk
from tkinter import ttk, messagebox
import time
import threading
import winsound
from datetime import datetime
class AlarmClockGUI:
def __init__(self):
self.window = tk.Tk()
self.window.title("智能闹钟")
self.window.geometry("400x500")
self.alarms = []
self.setup_ui()
self.start_clock()
def setup_ui(self):
"""设置界面"""
# 标题
title = tk.Label(self.window, text="⏰ 智能闹钟",
font=("Arial", 20, "bold"))
title.pack(pady=10)
# 当前时间
self.time_label = tk.Label(self.window, text="",
font=("Arial", 16))
self.time_label.pack()
# 闹钟设置区域
frame = tk.Frame(self.window)
frame.pack(pady=20)
# 时间选择
tk.Label(frame, text="设置闹钟时间:").grid(row=0, column=0, pady=5)
self.hour_var = tk.StringVar(value="08")
self.minute_var = tk.StringVar(value="00")
hours = [f"{i:02d}" for i in range(24)]
minutes = [f"{i:02d}" for i in range(60)]
hour_combo = ttk.Combobox(frame, textvariable=self.hour_var,
values=hours, width=5)
hour_combo.grid(row=0, column=1)
tk.Label(frame, text=":").grid(row=0, column=2)
minute_combo = ttk.Combobox(frame, textvariable=self.minute_var,
values=minutes, width=5)
minute_combo.grid(row=0, column=3)
# 提醒内容
tk.Label(frame, text="提醒内容:").grid(row=1, column=0, pady=10)
self.message_entry = tk.Entry(frame, width=30)
self.message_entry.grid(row=1, column=1, columnspan=3)
self.message_entry.insert(0, "时间到了!")
# 添加闹钟按钮
add_btn = tk.Button(frame, text="添加闹钟",
command=self.add_alarm,
bg="#4CAF50", fg="white",
width=20)
add_btn.grid(row=2, column=0, columnspan=4, pady=10)
# 闹钟列表
tk.Label(self.window, text="已设置的闹钟:",
font=("Arial", 12, "bold")).pack()
self.listbox = tk.Listbox(self.window, width=50, height=10)
self.listbox.pack(pady=10)
# 删除闹钟按钮
del_btn = tk.Button(self.window, text="删除选中闹钟",
command=self.delete_alarm,
bg="#f44336", fg="white")
del_btn.pack()
def start_clock(self):
"""更新当前时间"""
def update():
current_time = time.strftime("%H:%M:%S")
self.time_label.config(text=f"当前时间: {current_time}")
self.window.after(1000, update)
# 检查闹钟
self.check_alarms()
update()
def add_alarm(self):
"""添加闹钟"""
hour = self.hour_var.get()
minute = self.minute_var.get()
message = self.message_entry.get()
alarm_time = f"{hour}:{minute}"
if alarm_time not in self.alarms:
self.alarms.append(alarm_time)
self.listbox.insert(tk.END, f"{alarm_time} - {message}")
messagebox.showinfo("成功", f"闹钟已设置: {alarm_time}")
else:
messagebox.showwarning("警告", "该时间已有闹钟")
def delete_alarm(self):
"""删除闹钟"""
selection = self.listbox.curselection()
if selection:
index = selection[0]
self.alarms.pop(index)
self.listbox.delete(index)
def check_alarms(self):
"""检查闹钟"""
current_time = time.strftime("%H:%M")
if current_time in self.alarms:
# 播放闹钟声音
for _ in range(3):
winsound.Beep(1000, 500)
time.sleep(0.2)
# 显示提醒
messagebox.showinfo("⏰ 闹钟提醒", f"时间到!{current_time}")
# 移除已触发的闹钟
self.alarms.remove(current_time)
# 更新列表
self.listbox.delete(0, tk.END)
for alarm in self.alarms:
self.listbox.insert(tk.END, alarm)
def run(self):
"""运行程序"""
self.window.mainloop()
# 运行GUI闹钟
if __name__ == "__main__":
app = AlarmClockGUI()
app.run()
安装和使用说明
安装依赖
# 对于基础版本 pip install plyer # 桌面通知支持 # 如果需要完整功能 pip install tkinter # 通常Python自带
运行脚本
python alarm_clock.py
定时任务方式(无需运行程序)
Windows任务计划程序
@echo off :: 创建提醒.bat msg * "时间到了!会议即将开始!" start "" "ms-settings:alarms"
Linux crontab
# 编辑crontab crontab -e # 每天早上9点提醒 0 9 * * * /usr/bin/notify-send "提醒" "开始工作!" # 下午2:30提醒 30 14 * * * /usr/bin/notify-send "提醒" "下午会议!"
选择适合你需求的版本:
- 简单版本:适合快速测试
- 功能完整版:适合日常使用
- GUI版本:可视化操作更方便
- 系统定时任务:无需运行程序
需要我帮你调整功能或添加特定特性吗?
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播