为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村9548890 2021-08-17 10:11:48
使用时是否可以连接字符串.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}"


查看完整回答
反对 回复 2021-08-17
?
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


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信