Python:传递给object .__ format__的非空格式字符串

时间:2017-08-30 08:09:27

标签: python python-3.x

images_name = "%s/%03d_image.jpg" % (target, i)

我已将其格式化为 images_name = '{:03d_image.jpg}'.format((target, i))

你能指出我的错误吗?

还能以更好的方式格式化吗?

format_str = ('%s: Step %d, Loss = %.2f (%.1f examples/sec; %.3f ' 'sec/batch)')

print(format_str % (datetime.now(), step, loss_value,examples_per_sec, duration))

1 个答案:

答案 0 :(得分:1)

您应该像使用旧格式样式一样指定单独的占位符,而不包括大括号内不需要格式化的部分:

images_name = '{}/{:03d}_image.jpg'.format(target, i)

同样的规则适用于第二个字符串:

format_str = '{}: Step {:d}, Loss = {:.2f} ({:.1f} examples/sec; {:.3f} sec/batch)'
print(format_str.format(datetime.now(), step, 
                        loss_value, examples_per_sec, duration))

详细了解old and new format specifications in Python