You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python turtle模块开发数字时钟遇语法错误,求排查修复

修复Python Turtle数字时钟的语法与运行错误

问题分析

你的代码存在两个核心问题:

  • 代码中的"是HTML转义字符,Python无法识别,直接导致语法错误
  • 手动累加秒/分/时的逻辑会产生时间误差,且缺少窗口更新逻辑,容易导致程序无响应

修复后的代码

import turtle as tl
import time 
import datetime as dt

# 创建绘图对象
t = tl.Turtle()
t_box = tl.Turtle()

# 设置窗口
screen = tl.Screen()
screen.bgcolor('black')
screen.tracer(0)  # 关闭自动刷新,提升流畅度

# 绘制时间外框
t_box.pensize(3)
t_box.color('white')
t_box.penup()
t_box.goto(-100, 30)
t_box.pendown()
for _ in range(2):
    t_box.forward(200)
    t_box.left(90)
    t_box.forward(70)
    t_box.left(90)
t_box.hideturtle()

# 设置时间显示样式
t.hideturtle()
t.color('white')

while True:
    t.clear()
    # 实时获取系统时间,彻底避免手动累加的误差
    now = dt.datetime.now()
    current_time = f"{now.hour:02d}:{now.minute:02d}:{now.second:02d}"
    # 使用标准引号,添加居中对齐让显示更美观
    t.write(current_time, font=('Arial Narrow', 35, 'bold'), align='center')
    screen.update()  # 手动更新窗口,防止无响应
    time.sleep(1)

关键修复点

  • 替换转义引号:把代码中所有"替换为普通双引号",解决语法错误
  • 实时获取时间:删除手动累加秒/分/时的逻辑,每次循环调用dt.datetime.now()获取最新系统时间,彻底避免时间偏差
  • 优化窗口刷新:开启screen.tracer(0)并手动调用screen.update(),避免程序无响应
  • 调整显示对齐:给write方法添加align='center'参数,让时间在框内居中显示
  • 优化外框位置:修改外框起始坐标,让整体布局更协调

内容的提问来源于stack exchange,提问作者Noob_Master_69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:17:19