【问题标题】:Python - convert to string with formatter as parameterPython - 使用格式化程序作为参数转换为字符串
【发布时间】:2014-11-19 12:48:28
【问题描述】:

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

  • 一个对象
  • 格式化字符串(在文档中指定)

然后返回一个格式化的字符串: 我尝试的是:

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

等等……

不幸的是,格式化功能不能这样工作。有什么想法吗?

【问题讨论】:

    标签: python format


    【解决方案1】:

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

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

    您还必须更改格式;要获得05,您必须使用"%02d",而不是"%2f"

    你被str.format() method弄糊涂了,它使用了不同的格式语法,并且你交换了参数;你会改用form.format(x)

    您可能想在这里查看内置的format() function;语法略有不同,但提供了更多功能:

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

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

    【讨论】:

    • 谢谢,没错,我被str.format 方法弄糊涂了
    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-09-21
    • 2020-09-09
    相关资源
    最近更新 更多