代码之家  ›  专栏  ›  技术社区  ›  DCR

将f字符串放置在f字符串内部

  •  1
  • DCR  · 技术社区  · 2 年前

    我的电话号码是1234567.12。我试着把它放在一个20的字段的中心,有3个小数点,逗号作为分隔符,左右两边用*填充。以下是我所做的:(Python 3.11)

    value = 1234567.12
    y = f'{value:,.3f}'
    x = f'{y:*^20}'
    

    这也相当于:

    x = f'{f"{value:,.3f}":*^20}'
    

    有更干净的语法吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   blhsing    2 年前

    根据的规范 format mini-language :

    format_spec     ::=  [[fill]align][sign]["z"]["#"]["0"][width][grouping_option]["."precision][type]
    

    你可以把 fill ( * ), align ( ^ )以及 width ( 20 )之前 grouping_option ( , ):

    x = f'{value:*^20,.3f}'