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

如何用Python函数累加多组分钟:秒:十分之一秒格式的拉力赛阶段时间?

拉力赛阶段时间累加程序解决方案

现有代码问题分析

  • 仅处理单个阶段的时间,未实现循环处理指定数量阶段的逻辑,也没有累加功能
  • 赋值语法错误:Python中变量赋值必须是变量 = 值,比如NewB = b - 60,而非b - 60 = NewB
  • 缺失完整的时间进位逻辑:未处理十分之一秒满10进1秒的情况,且秒数进位的逻辑也不完整
  • 未维护总时间的累加变量,无法得到所有阶段的总时长

修正后的实现方案

将所有时间转换为十分之一秒这一最小单位进行累加,最后再转换回分钟:秒:十分之一秒的格式,能简化进位处理,避免分步计算的错误。

完整代码

# 获取阶段数并验证输入范围
while True:
    try:
        stage_count = int(input("How many stages are there? "))
        if 4 <= stage_count <= 14:
            break
        print("Stage count must be between 4 and 14. Please try again.")
    except ValueError:
        print("Please enter a valid integer.")

# 初始化总时间(单位:十分之一秒)
total_tenths = 0

# 循环输入每个阶段的时间
for i in range(stage_count):
    print(f"\nEnter time for stage {i+1}:")
    try:
        minutes = int(input("Minutes: "))
        seconds = int(input("Seconds: "))
        tenths = int(input("Tenths: "))
        
        # 将当前阶段时间转换为十分之一秒,累加到总时间
        stage_tenths = minutes * 60 * 10 + seconds * 10 + tenths
        total_tenths += stage_tenths
    except ValueError:
        print("Please enter valid integers for time values.")
        exit()

# 将总时间转换回分钟:秒:十分之一秒格式
total_minutes = total_tenths // (60 * 10)
remaining_tenths = total_tenths % (60 * 10)
total_seconds = remaining_tenths // 10
total_tenths_final = remaining_tenths % 10

# 格式化输出,确保数字位数符合要求(分钟3位,秒2位,十分之一秒1位)
print(f"\nTotal time: {total_minutes:03d}:{total_seconds:02d}:{total_tenths_final:d}")

代码说明

  1. 输入验证:确保阶段数在4-14之间,且输入为有效整数
  2. 统一单位累加:把每个阶段的时间都转换成十分之一秒,直接累加,避免分步进位的复杂逻辑
  3. 格式转换:将总时间(十分之一秒)反向转换为分钟、秒、十分之一秒,自动处理所有进位
  4. 格式化输出:使用格式化字符串保证输出格式符合MMM:SS:T的要求(分钟补零到3位,秒补零到2位)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:33:15