猿问

在格式字符串中可能遇到单个 '}'

使用时是否可以连接字符串.format()?


_NACHKOMMASTELLEN = 3


print("  {0:." + str(_NACHKOMMASTELLEN) + "f}".format(round(V_values[0], _NACHKOMMASTELLEN)), end='')

我收到错误:


在格式字符串中遇到单个 '}'


慕村9548890
浏览 147回答 2
2回答

繁星点点滴滴

您需要将字符串括在括号中:print(("  {0:." + str(_NACHKOMMASTELLEN) + "f}").format(round(V_values[0], _NACHKOMMASTELLEN)), end='')       ^                                        ^所以这"  {0:." + str(_NACHKOMMASTELLEN) + "f}"将被格式化而不是"f}"

jeck猫

如果你低于 3.6 你可以双重格式化:_NKS = 3   # shortened for 79 line char limitV_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 = 3V_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
随时随地看视频慕课网APP

相关分类

Python
我要回答