如何正确计算剩余时间?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
相关产品推荐
相关产品推荐

