使用时是否可以连接字符串.format()?_NACHKOMMASTELLEN = 3print(" {0:." + str(_NACHKOMMASTELLEN) + "f}".format(round(V_values[0], _NACHKOMMASTELLEN)), end='')我收到错误:在格式字符串中遇到单个 '}'
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您需要将字符串括在括号中:
print((" {0:." + str(_NACHKOMMASTELLEN) + "f}").format(round(V_values[0], _NACHKOMMASTELLEN)), end='') ^ ^
所以这" {0:." + str(_NACHKOMMASTELLEN) + "f}"
将被格式化而不是"f}"
jeck猫
TA贡献1909条经验 获得超7个赞
如果你低于 3.6 你可以双重格式化:
_NKS = 3 # shortened for 79 line char limit
V_values = [3.123456789]
print(" {{:.{}f}}".format(_NKS ).format(round(V_values[0], _NKS )))
第一format放3的就地{}并转换双{{和}}单{和}-所产生的字符串{:.3f},然后用于第二format。
格式比我好。这也适用:
print(" {:.{}f}".format(round(V_values[0], _NKS ),_NKS ))
输出:
3.123
如果您已经使用 3.6,则不需要 - f-strings 可以更好地处理它:
_NACHKOMMASTELLEN = 3
V_values = [3.123456789]
print(f" {round(V_values[0], _NACHKOMMASTELLEN):.{_NACHKOMMASTELLEN}f}")
V_values = [3.1]
print(f" {round(V_values[0], _NACHKOMMASTELLEN):.{_NACHKOMMASTELLEN}f}")
输出:
3.123
3.100
添加回答
举报
0/150
提交
取消