我无法理解为什么剪切的第一个代码不起作用,它与第二个代码相同。
(我正在阅读一本书,但我不知道为什么我的代码不起作用)
"name"
感谢您的帮助,
答案 0 :(得分:2)
第二个示例{{0:{0}}}
有{0}
代替格式规范,因此第一次格式化时,规范就会被放置到位,并且{}
的一层被删除格式标记为双{{}}
:
>>> "{{0:{0}}}".format(formatr)
'{0:10.4f}'
然后第二次将该字段放置到位:
>>> '{0:10.4f}'.format(x)
'13424.0000'
要一次性进行格式化,您需要将规范指定为{formatr}
并将其作为参数添加到.format()
:
>>> "{0:{formatr}}".format(x,formatr=formatr)
'13424.0000'
或指定为位置参数:
>>> "{0:{1}}".format(x,formatr)
'13424.0000'
答案 1 :(得分:-1)
在您的示例中,python解释器无法识别
formatr
内stringToBeFormatted
作为变量,因此无法解决。如果您将formatr
字符串(其内容)按原样放入stringToBeFormatted
,它会起作用:
x = float(13424)
stringToBeFormatted = "<td align='right'>{0:10.4f}</td>".format(x)
print(stringToBeFormatted.format(x))