小能豆

在 Python 中将数字格式化为字符串

py

我需要了解如何将数字格式化为字符串。我的代码如下:

return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm

小时和分钟是整数,秒是浮点数。str() 函数会将所有这些数字转换为十分位 (0.1)。因此,我的字符串不会输出“5:30:59.07 pm”,而是会显示类似“5.0:30.0:59.1 pm”的内容。

底线是,我需要什么库/函数来为我做到这一点?


阅读 52

收藏
2024-10-10

共1个答案

小能豆

从 Python 3.6 开始,可以使用格式化的字符串文字f 字符串进行 Python 中的格式化:

hours, minutes, seconds = 6, 56, 33
f'{hours:02}:{minutes:02}:{seconds:02} {"pm" if hours > 12 else "am"}'

或者str.format以 2.7 开头的函数:

"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")

或者更旧版本的 Python 的字符串格式化%运算符,但请参阅文档中的注释:

"%02d:%02d:%02d" % (hours, minutes, seconds)

对于格式化时间的具体情况,有time.strftime

import time

t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0)
time.strftime('%I:%M:%S %p', t)
2024-10-10