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

如何正确计算剩余时间?Python计时代码问题求助

修正象棋计时代码,获取正确整数剩余时间

你的代码出现负数剩余时间,是因为计时逻辑和循环条件存在错误,以下是具体修正方案:

错误分析

  • 循环条件while time!=0:错误:time是导入的函数,不是变量,这个条件永远为真,逻辑完全错误。
  • 剩余时间计算逻辑错误:你用total_time - start,但start是程序启动时的时间戳(数值极大),正确的计算应该是总时间减去已经流逝的时间。
  • 存在拼写错误:Remaninig应为Remaining。

修正后的代码

from time import time
import math

start = time()
total_time = 30

while True:
    move = input('Chess move: ')
    if move != 'off':
        # 计算从启动到当前的流逝时间
        elapsed_time = time() - start
        # 计算剩余时间并向下取整
        remaining_time = math.floor(total_time - elapsed_time)
        # 避免剩余时间出现负数
        remaining_time = max(remaining_time, 0)
        print('Remaining time:', remaining_time)
    else:
        break

修改说明

  • 改用while True循环,直到输入off时退出,逻辑更清晰。
  • 新增elapsed_time变量,准确计算已经过去的时间。
  • 剩余时间通过total_time - elapsed_time计算,再用math.floor()得到整数结果,同时用max()保证时间不会出现负数。
  • 修正了剩余时间的拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:50:26