要求
问题
-
符号会降低外观(值不会对齐)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
更新答案:
您可以组成多个格式说明符。下面,
+.1f
用于保留符号,并且仅打印到小数点后一位。 <10
用于调整字符串。
values = [-1.0, 2.2]
for value in values:
print(f"someLjustedStrings{value:<+10.1f}someLjustedStrings")
旧答案:
你可以试试这个:
values = [-1.0, 2.2]
for value in values:
print(f"someLjustedStrings{['+', '-'][value<0]}{abs(value):<10}someLjustedStrings")
输出:
someLjustedStrings-1.0 someLjustedStrings
someLjustedStrings+2.2 someLjustedStrings
<
后跟 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")
输出:
someLjustedStrings-1.0 someLjustedStrings
someLjustedStrings+2.2 someLjustedStrings