python - 在 Python 中将秒转换为天、小时、分钟和秒
问题描述
我有一个函数可以将秒返回天、小时、分钟和秒。但是我需要但是,如果输出为 0,则不打印。例如,如果我输入 176400 秒,我希望输出为“2 天 1 小时”而不是“2 天、2 小时、0 分钟、0 秒”。
到目前为止我做了:
sec = int(input("Enter time in Seconds: "))
temp = sec
day = sec // 86400
sec %= 86400
hour = sec // 3600
sec %= 3600
mins = sec // 60
sec %= 60
if day >= 1:
print(f'time in minutes is {day}days {hour}hour {mins}min {sec}sec')
elif hour >= 1:
if mins == 0 and sec == 0:
print(f'time in minutes is {hour}hour')
elif mins == 0:
print(f'time in minutes is {hour}hour {sec}sec')
elif sec == 0:
print(f'time in minutes is {hour}hour {mins}min')
else:
print(f'time in minutes is {hour}hour {mins}min {sec}sec')
elif mins >= 1:
if sec == 0:
print(f'time in minutes is {mins}min')
else:
print(f'time in minutes is {mins}min {sec}sec')
elif sec >= 1:
print(f'time sec == {sec} sec')
我可以使用一堆“if”语句继续这段代码,但有更短的方法吗?
解决方案
看起来您正在尝试执行以下操作:
result = "time in minutes is"
if days >0:
result += f" {days} days"
if hours > 0:
result += f" {hours} hours"
if mins > 0:
result += f" {mins} minutes"
if secs > 0:
result += f" {secs} seconds"
推荐阅读
- python - 如何使用python确定两个图中的峰值并仅绘制两个图中的峰值图
- node.js - 如何在 docker 容器中配置节点应用程序和 haProxy?
- postgresql - 根据条件拆分为多列
- java - Spring Boot JAR 应用程序未从资源文件夹中读取 chromedriver.exe
- hyper-v - Enable-PSRemoting (Set-WSManQuickConfig) 和 HyperV 适配器
- java - Spring Kafka:记录侦听器与批处理侦听器
- image-processing - C++ 从位图中获取图像缓冲区
- c - C 库应该如何管理错误?
- regex - 正则表达式:如果在路径中找到特定的字符串模式,则重新调整 url 路径
- flutter - 如何从 Sub Collection Flutter 中获取数据?