python符号怎么打_如何在python字符串中打印⽂字⼤括号字
符并在其上使⽤.form。。。
x = " \{ Hello \} {0} "
print x.format(42)
给我: Key Error: Hello\\\\
我要打印输出: {Hello} 42
#1楼
尽管没有更好的效果,但仅供参考,您也可以这样做:
>>> x = '{}Hello{} {}'
>>> print x.format('{','}',42)
{Hello} 42
例如,当有⼈要打印{argument}时,它可能很有⽤。 它可能⽐'{{{}}}'.format('argument')更具可读性
请注意,在Python 2.7之后,您省略了参数位置(例如,⽤{}代替{0} )
#2楼
OP写了这个评论:
我试图出于某种⽬的格式化⼩型JSON,例如: '{"all": false, "selected": "{}"}'.format(data)以获取类似{"all": false, "selected": "1,2"}在处理JSON时经常会出现“转义括号”问题。
我建议这样做:
import json
data = "1,2"
mydict = {"all": "false", "selected": data}
json.dumps(mydict)
它⽐替代⽅案更清洁,替代⽅案是:
'{{"all": false, "selected": "{}"}}'.format(data)
当JSON字符串⽐⽰例复杂时,最好使⽤json库。
#3楼
如果您打算做很多事情,最好定义⼀个实⽤函数,让您使⽤任意⼤括号替代项,例如
def custom_format(string, brackets, *args, **kwargs):
if len(brackets) != 2:
raise ValueError('Expected two brackets. Got {}.'.format(len(brackets)))
padded = place('{', '{{').replace('}', '}}')
substituted = place(brackets[0], '{').replace(brackets[1], '}')
formatted = substituted.format(*args, **kwargs)
return formatted
>>> custom_format('{{[cmd]} process 1}', brackets='[]', cmd='')
'{{} process 1}'
请注意,这将适⽤于括号为长度为2的字符串或两个字符串为可迭代的字符串(对于多字符定界符)。#4楼
原因是{}是.format()的语法,因此在您的情况下.format()⽆法识别{Hello}因此引发了错误。
您可以使⽤双⼤括号{{}}覆盖它,
x = " {{ Hello }} {0} "
要么
尝试使⽤%s进⾏⽂本格式设置,
x = " { Hello } %s"
print x%(42)
#5楼
Python 3.6+(2017年)
在最新版本的Python中,将使⽤f字符串 (另请参阅PEP498 )。
对于f字符串,应该使⽤双{{或}}
n = 42python怎么读的
print(f" {{Hello}} {n} ")
产⽣所需的
{Hello} 42
如果您需要在⽅括号中解析表达式⽽不是使⽤⽂字⽂本,则需要三组⽅括号:
hello = "HELLO"
print(f"{{{hello.lower()}}}")
产⽣
{hello}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。