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

跑步者计时程序:输出时间等距对齐与总时间转时分的技术问题

解决跑步成绩程序的两个问题

问题1:实现姓名长度不同时时间间距一致

要让时间始终对齐,核心是给姓名字段设置固定宽度——不管姓名长短都占用相同的字符数,不足的部分用空格填充。以Python为例,你可以用f-string的格式化语法轻松实现左对齐(或右对齐,按需选择):

比如设定姓名占15个字符宽度、左对齐,这样后面的时间就会自动对齐到同一列:

# 示例参赛数据
runners = [("Suzie", 329), ("Phil", 445), ("Alexander", 298), ("L", 512)]

# 格式化输出
for name, time in runners:
    # <15 表示左对齐,占用15个字符宽度
    print(f"{name:<15}{time}")

输出效果会是:

Suzie           329
Phil            445
Alexander       298
L               512

你可以根据实际姓名的最长长度调整15这个数值,确保所有姓名都能容纳,这样时间的位置就完全一致了。

问题2:将总时间数值转换为小时和分钟格式

假设你的总时间是秒数(比如329代表329秒),可以通过整除和取余运算拆分出小时和分钟:

def format_time(total_seconds):
    hours = total_seconds // 3600  # 1小时=3600秒
    remaining_seconds = total_seconds % 3600
    minutes = remaining_seconds // 60  # 1分钟=60秒
    
    # 按需调整输出格式,比如小时为0时只显示分钟
    if hours == 0:
        return f"{minutes}分钟"
    else:
        return f"{hours}小时{minutes}分钟"

# 测试示例
print(format_time(329))  # 输出:5分钟
print(format_time(445))  # 输出:7分钟
print(format_time(3700)) # 输出:1小时1分钟

如果你的总时间本身是分钟数(比如329代表329分钟),逻辑更简单:

def format_time(total_minutes):
    hours = total_minutes // 60
    minutes = total_minutes % 60
    return f"{hours}小时{minutes}分钟"

print(format_time(329))  # 输出:5小时29分钟

你可以根据实际的时间单位调整代码,最终就能得到清晰的小时+分钟格式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:27:47