如何在 fstring 中使用 ljust ?

Iny*_*Kim 1 python string formatting

要求

  • 我有一些浮点值和字符串我想在一行中打印出来
  • 我有多行要打印
  • 我希望它的格式像没有行的表格一样

问题

  • 浮点值的符号-会降低外观(这些值不会对齐)
  • 我可以f"{myfloat:+}"给出所有值的符号。但是,然后我不能使用str.ljust方法
  • 我尝试过f"{str(myfloat:+).ljust(10)}",这当然引发了错误
# My current code
values = [-1.0, 2.2]

for value in values:
    formatted = str(value).ljust(10)
    print(f"someLjustedStrings{formatted}someLjustedStrings")

#Output
#someLjustedStrings-1.0      someLjustedStrings
#someLjustedStrings2.2       someLjustedStrings

#Expected Output (best)
#someLjustedStrings-1.0      someLjustedStrings
#someLjustedStrings+2.2      someLjustedStrings
#OR
#someLjustedStrings-1.0      someLjustedStrings
#someLjustedStrings 2.2      someLjustedStrings

Run Code Online (Sandbox Code Playgroud)

Cyt*_*rak 5

你可以试试这个:

values = [-1.0, 2.2]

for value in values:
    print(f"someLjustedStrings{['+', '-'][value<0]}{abs(value):<10}someLjustedStrings")
Run Code Online (Sandbox Code Playgroud)

输出:

someLjustedStrings-1.0       someLjustedStrings
someLjustedStrings+2.2       someLjustedStrings
Run Code Online (Sandbox Code Playgroud)

<接下来是int对于ljust

>接下来是int对于rjust

编辑:

如果你想ljust通过变量:

LJUST = {'value': 10}
values = [-1.0, 2.2]

for value in values:
    print(f"someLjustedStrings{['+', '-'][value<0]}{abs(value):<{LJUST['value']}}someLjustedStrings")
Run Code Online (Sandbox Code Playgroud)

输出:

someLjustedStrings-1.0       someLjustedStrings
someLjustedStrings+2.2       someLjustedStrings
Run Code Online (Sandbox Code Playgroud)

  • 我以前从未见过这样的代码。如果你能澄清我的话。“[value&lt;0]”计算为布尔值中的索引“0”或“1”。哪个打印标志。而 `:&lt;10` 充当 `ljust` ? (2认同)
  • 有没有办法指定变量中“ljust”的数量?例如) `f"{value:&lt;LJUST["value"]}"` (2认同)
  • @InyoungKim 在变量周围放置另一对大括号。检查编辑情况。 (2认同)