ValueError: '=' alignment not allowed in string format specifier. Sometimes not working

ValueError: '=' alignment not allowed in string format specifier. Sometimes not working

错误信息:

alarm = f"{alarm_hour}:{alarm_minute:02}:{alarm_am_pm}"

ValueError: '=' alignment not allowed in string format specifier

我不知道为什么这段代码会出错,因为我之前在 的程序中使用过相同的代码并且运行良好。这是代码。

TIME = f"{current_hour}:{current_minute:02}:{current_second} {am_pm}"

但是,每当我从 alarm_minute 中删除 :02 时,它都能正常工作,因为我想以 2 位数字显示数字。我很困惑代码有什么问题。两者几乎相同,但有一个出错了,另一个没有。

假设您希望将数字格式设置为带前导 0 的两位数,而当它是单个数字时,您可以将其与字母 d 一起传递,让 fstring 知道您希望将其格式设置为带 0 前导的 2 位数字。你可以用浮点数做类似的事情来打印到 x 位小数。

num = 3
price = 4.9
print(f"{num:02d}, {price:.2f}")

输出

03, 4.90