我需要了解如何将数字格式化为字符串。我的代码如下:
return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm
小时和分钟是整数,秒是浮点数。str() 函数会将所有这些数字转换为十分位 (0.1)。因此,我的字符串不会输出“5:30:59.07 pm”,而是会显示类似“5.0:30.0:59.1 pm”的内容。
底线是,我需要什么库/函数来为我做到这一点?
从 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 开头的函数:
str.format
"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")
或者更旧版本的 Python 的字符串格式化%运算符,但请参阅文档中的注释:
%
"%02d:%02d:%02d" % (hours, minutes, seconds)
对于格式化时间的具体情况,有time.strftime:
time.strftime
import time t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0) time.strftime('%I:%M:%S %p', t)