一件代发48个货源网站,学做窗帘的网站,怎么在wordpress中添加类似赶集网的地图,25个优秀个人网站设计模板⏱️ 编程基础第一期《6-30》–简易计时器/秒表#xff0c;这是一个使用Python的turtle和time模块实现的简易计时器/秒表程序#xff0c;提供简洁的数字时间显示。 目录 #x1f31f; 功能特点#x1f680; 使用方法#x1f9e9; 程序架构设计#x1f4bb; 代码详解窗口和… ⏱️ 编程基础第一期《6-30》–简易计时器/秒表这是一个使用Python的turtle和time模块实现的简易计时器/秒表程序提供简洁的数字时间显示。 目录 功能特点 使用方法 程序架构设计 代码详解窗口和画笔创建时间和状态显示更新计时器控制逻辑计时器重置功能事件监听设置主循环及运行控制 总✨今日分享语录 功能特点
数字显示当前计时时:分:秒.毫秒支持开始/暂停计时空格键支持重置计时R键状态显示正在计时/已暂停/按空格键开始计时清晰的操作提示 使用方法
运行程序后会显示初始时间(00:00:00.000)按下空格键开始计时再次按下空格键暂停计时按下R键可以重置计时器回到00:00:00.000 程序架构设计 核心模块: turtle: 提供跨平台的图形化界面绘制功能time: 提供高精度的系统时间获取功能 设计模式: 采用事件驱动编程模型通过键盘事件触发状态变更利用全局状态管理计时器状态 算法原理: 时间计算利用系统时间差值计算经过时间状态管理使用布尔变量控制计时器运行状态 代码详解
窗口和画笔创建
import turtle
import time# 设置窗口和基本参数
screen turtle.Screen()
screen.title(简易计时器/秒表)
screen.bgcolor(black)
screen.setup(width500, height300)
screen.tracer(0) # 关闭自动刷新# 创建显示时间的画笔
time_display turtle.Turtle()
time_display.hideturtle() # 隐藏turtle的箭头图标使绘图时只显示图形而不显示箭头
time_display.color(cyan) # 设置turtle绘图的颜色
time_display.penup() #抬起turtle的笔这样移动turtle时不会绘制线条
time_display.goto(0, 30) # 将turtle移动到坐标(0, 30)的位置准备从该点开始绘图或显示文本# 创建状态显示的画笔
status_display turtle.Turtle()
status_display.hideturtle()
status_display.speed(0)
status_display.color(white)
status_display.penup()
status_display.goto(0, -30)# 创建操作提示的画笔
help_display turtle.Turtle()
help_display.hideturtle()
help_display.speed(0)
help_display.color(yellow)
help_display.penup()
help_display.goto(0, -80)
help_display.write(空格键: 开始/暂停 | R键: 重置, aligncenter, font(Arial, 14, normal))# 初始化秒表变量
is_running False
start_time 0
accumulated_time 0应用知识点
Turtle图形对象: 创建多个Turtle对象分别负责不同UI元素的显示窗口控制: 使用screen.tracer(0)关闭自动刷新以提高性能坐标系统: 使用二维坐标系统合理布局界面元素全局状态变量: 使用全局变量跟踪计时器状态
时间和状态显示更新
# 更新时间显示
def update_time_display(elapsed_time):hours int(elapsed_time / 3600)minutes int((elapsed_time % 3600) / 60)seconds int(elapsed_time % 60)milliseconds int((elapsed_time * 1000) % 1000)time_str f{hours:02d}:{minutes:02d}:{seconds:02d}.{milliseconds:03d}time_display.clear()time_display.write(time_str, aligncenter, font(Arial, 40, bold))# 更新状态显示
def update_status():status_display.clear()if is_running:status 正在计时...else:if accumulated_time 0:status 已暂停else:status 按空格键开始计时status_display.write(status, aligncenter, font(Arial, 20, normal))应用知识点
时间单位转换: 将秒数转换为时、分、秒、毫秒取余与整除运算: 使用整除和取余操作进行时间单位分解字符串格式化: 使用f-string和格式说明符控制显示格式状态条件判断: 根据多种状态组合提供不同的用户反馈
计时器控制逻辑
def toggle_timer():global is_running, start_time, accumulated_timeif is_running:# 暂停计时is_running Falseaccumulated_time time.time() - start_timeelse:# 开始计时is_running Truestart_time time.time()update_status()应用知识点
全局变量修改: 使用global关键字在函数内修改全局状态高精度时间获取: 使用time.time()获取高精度Unix时间戳状态切换设计: 实现简洁的状态切换逻辑
计时器重置功能
def reset_timer():global is_running, start_time, accumulated_timeis_running Falseaccumulated_time 0start_time 0update_status()update_time_display(0)应用知识点
状态重置: 将所有计时相关变量重置为初始值函数复用: 复用更新显示的函数避免代码冗余
事件监听设置
# 设置键盘事件
screen.listen()
screen.onkeypress(toggle_timer, space) # 空格键开始/暂停
screen.onkeypress(reset_timer, r) # R键重置应用知识点
事件监听机制: 使用listen()方法启用事件监听回调函数绑定: 将键盘事件与特定函数绑定函数引用传递: 将函数名作为参数传递不带括号
主循环及运行控制
def main():# 初始显示update_status()update_time_display(0)while True:if is_running:elapsed_time accumulated_time (time.time() - start_time)else:elapsed_time accumulated_timeupdate_time_display(elapsed_time)screen.update()time.sleep(0.01) # 小延迟减轻CPU负担# 启动程序
if __name__ __main__:try:main()except:print(程序已退出)turtle.done() 应用知识点
无限循环: 使用while True创建游戏主循环条件计时: 根据运行状态计算不同的时间值手动屏幕刷新: 使用screen.update()手动刷新画面定时延迟: 使用time.sleep()控制循环速率减轻CPU负担异常处理: 使用try-except捕获可能的异常确保程序优雅退出入口点检查: 使用if __name__ __main__:确保直接运行时才执行主函数
总
import turtle
import time# 设置窗口和基本参数
screen turtle.Screen()
screen.title(简易计时器/秒表)
screen.bgcolor(black)
screen.setup(width500, height300)
screen.tracer(0) # 关闭自动刷新# 创建显示时间的画笔
time_display turtle.Turtle()
time_display.hideturtle() # 隐藏turtle的箭头图标使绘图时只显示图形而不显示箭头
time_display.color(cyan) # 设置turtle绘图的颜色
time_display.penup() #抬起turtle的笔这样移动turtle时不会绘制线条
time_display.goto(0, 30) # 将turtle移动到坐标(0, 30)的位置准备从该点开始绘图或显示文本# 创建状态显示的画笔
status_display turtle.Turtle()
status_display.hideturtle()
status_display.speed(0)
status_display.color(white)
status_display.penup()
status_display.goto(0, -30)# 创建操作提示的画笔
help_display turtle.Turtle()
help_display.hideturtle()
help_display.speed(0)
help_display.color(yellow)
help_display.penup()
help_display.goto(0, -80)
help_display.write(空格键: 开始/暂停 | R键: 重置, aligncenter, font(Arial, 14, normal))# 初始化秒表变量
is_running False
start_time 0
accumulated_time 0# 更新时间显示
def update_time_display(elapsed_time):hours int(elapsed_time / 3600)minutes int((elapsed_time % 3600) / 60)seconds int(elapsed_time % 60)milliseconds int((elapsed_time * 1000) % 1000)time_str f{hours:02d}:{minutes:02d}:{seconds:02d}.{milliseconds:03d}time_display.clear()time_display.write(time_str, aligncenter, font(Arial, 40, bold))# 更新状态显示
def update_status():status_display.clear()if is_running:status 正在计时...else:if accumulated_time 0:status 已暂停else:status 按空格键开始计时status_display.write(status, aligncenter, font(Arial, 20, normal))def toggle_timer():global is_running, start_time, accumulated_timeif is_running:# 暂停计时is_running Falseaccumulated_time time.time() - start_timeelse:# 开始计时is_running Truestart_time time.time()update_status()def reset_timer():global is_running, start_time, accumulated_timeis_running Falseaccumulated_time 0start_time 0update_status()update_time_display(0)
# 设置键盘事件
screen.listen()
screen.onkeypress(toggle_timer, space) # 空格键开始/暂停
screen.onkeypress(reset_timer, r) # R键重置def main():# 初始显示update_status()update_time_display(0)while True:if is_running:elapsed_time accumulated_time (time.time() - start_time)else:elapsed_time accumulated_timeupdate_time_display(elapsed_time)screen.update()time.sleep(0.01) # 小延迟减轻CPU负担# 启动程序
if __name__ __main__:try:main()except:print(程序已退出)turtle.done() 效果
✨今日分享语录 “低级的欲望靠放纵高级的欲望靠自律。”