Python - 使用formatter作为参数转换为字符串

时间:2014-11-19 12:48:29

标签: python format

我正在尝试编写一个带有两个参数的函数:

  • 一个对象
  • 格式化程序字符串(在docs中指定)

然后返回格式化的字符串: 我试过的是:

def my_formatter(x, form):
    return str(x).format(form)

我期待的是:

s = my_formatter(5, "%2f")
# s = 05
t = my_formatter(5, "%.2")
# t = 5.00

等...

遗憾的是格式化功能并不像那样。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

对于这种格式,您必须使用string % values string formatting operation

def my_formatter(x, form):
    return form % x

你还必须改变你的格式;得到05你必须使用"%02d",而不是"%2f"

你对str.format() method感到困惑,format() function使用了不同的格式化语法,你交换了参数;你会改用form.format(x)

您可能希望在此处查看内置{{3}};语法略有不同,但提供了更多功能:

>>> format(5, '02d')
'05'
>>> format(5, '.2f')
'5.00'

这与您已使用的内容非常接近,减去%