基本上,我正在尝试将Latex代码模板化,我需要输出B_{i}
之类的字符串,并且我想调用字符串格式来更改i
。但问题是使用Python的字符串格式 - 使用元组来表示参数 - 当我想在输出的字符串中维护元组时,一直在给我带来麻烦。
实施例
假设我有:
subscript = "22"
value = "10"
stringy = "B_{{0}} = {1}".format(subscript, value)"
当我打印stringy
时,我得到:
B_{0} = 10
我想得到:
B_{22} = 10
答案 0 :(得分:2)
print("B_{{{0}}} = {1}".format(subscript, value))
{{
会在输出中打印出{
个字符,因此您需要另一个{}
来实际访问该变量
答案 1 :(得分:2)
将外括号加倍以逃避它们,因此总共需要3对:
stringy = "B_{{{0}}} = {1}".format(subscript, value)
print(stringy)
# B_{22} = 10
正如您当前的解决方案中所示,双重大括号{{...}}
已转义,不参与格式化。因此,您需要包含额外的大括号层。
答案 2 :(得分:2)
你快到了。您正确地将{
和}
字符翻了一倍,以便它们在字面上显示在格式化结果中。但是,您现在没有第一个值的占位符,需要在格式字符串中将其表示为{0}
。
所以:
stringy = "B_{{{0}}} = {1}".format(subscript, value)
答案 3 :(得分:1)
你还需要一对大括号:
subscript = "22"
value = "10"
stringy = "B_{{{0}}} = {1}".format(subscript, value)
print(stringy) # 'B_{22} = 10'
这是因为您需要双倍("{{"
)才能打印文字花括号。
外部的两个字母打印文字{}
,中间{0}
被subscript
替换。