目前要在字符串周围添加单引号,我提出的最佳解决方案是制作一个小包装函数。
def foo(s1):
return "'" + s1 + "'"
有更简单的pythonic方法吗?
答案 0 :(得分:14)
怎么样:
def foo(s1):
return "'%s'" % s1
答案 1 :(得分:12)
这是另一个(也许是更加pythonic)的选项,使用format strings:
def foo(s1):
return "'{}'".format(s1)
答案 2 :(得分:10)
只是想强调@metatoaster在上面的评论中所说的内容,因为我最初错过了它。
使用repr(string)将添加单引号,然后在其外部加双引号,然后在带有转义内部单引号的单引号之外,然后转到其他转义。
使用repr()作为内置函数更直接,除非存在其他冲突..
s = 'strOrVar'
print s, repr(s), repr(repr(s)), ' ', repr(repr(repr(s))), repr(repr(repr(repr(s))))
# prints: strOrVar 'strOrVar' "'strOrVar'" '"\'strOrVar\'"' '\'"\\\'strOrVar\\\'"\''
docs状态其基本状态repr(),即表示,与eval()相反:
"对于许多类型,此函数尝试返回一个字符串,该字符串在传递给eval(),...时会产生具有相同值的对象。"
反引用会更短,但在Python 3+中是removed。 有趣的是,StackOverflow使用反引号来指定代码跨度,而不是突出显示代码块并单击代码按钮 - 但它有一些有趣的行为。
答案 3 :(得分:2)
这适用于Python 3.5 +
def foo2(char):
return("'{}'".format(char))