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

Python中将秒转换为天时分秒且不输出0值单位的简化实现方法

简化实现方案

你可以通过预定义单位映射+遍历过滤的方式完全替代多层if判断,代码量大幅减少同时可扩展性更强:

total_sec = int(input("Enter time in Seconds: "))
# 按从大到小的顺序定义单位和对应秒数
units = [(86400, 'day'), (3600, 'hour'), (60, 'min'), (1, 'sec')]
res = []
left = total_sec
for sec_cnt, unit in units:
    val = left // sec_cnt
    if val:
        # 不需要单复数的话直接写 f"{val} {unit}" 即可
        res.append(f"{val} {unit}{'s' if val > 1 else ''}")
    left %= sec_cnt
print(f"time is {' '.join(res)}")

逻辑说明

  • 预先把时间单位和对应的秒数按从大到小的顺序存在列表里,后续如果要新增周、月等更大单位,直接在列表开头加对应配置即可,不需要修改核心逻辑
  • 遍历单位列表计算每个单位对应的数值,只把数值大于0的项加入结果列表
  • 最后把结果列表拼接成字符串输出,自动跳过所有0值单位
    比如输入176400秒时,运行后输出为2 days 1 hour,完全符合你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:12:00