Python %s 替换一直有效,直到我连接字符串 - 我做错了什么?
Python %s substitution works until I concatenate strings - what am I doing wrong?
我正在使用 Python 创建 HTML,使用样板格式并使用 %s
替换文本(我使用 %s 因为我在 codepad.org,它运行 Python2,即使我正在使用 Python3 测试它)。
如果我写一个 HTML 的块,用 %s
替换,一切都很好。
如果我试图让它更灵活,并以块的形式创建 HTML,它就不起作用,即使它对我来说看起来都一样。
我已将其简化为非常短的代码片段 - 我显然做错了什么,但看不到 - 非常感谢帮助!
print ('1abc %s def' % ('X')) # Line 1 - OK
string1 = '1abc %s def' % ('X')
print (string1) # Line 2 - OK
string2 = ("'2abc %s def'" + " % ('X')")
print (string2) # Line 3 - Not OK
第 1 行:WORKS - 输出:1abc X def
第 2 行:WORKS - 输出:1abc X def
第 3 行:不起作用 - 输出:'2abc %s def' % ('X')
% (X,)
不能是 字符串的一部分 ;但是,它可以是您应用于连接字符串的 结果 的内容。
也就是说,下面的工作正常:
string2 = ("2abc " + "%s def") % ('X',)
print(string2)
...但是 %
在这里是 syntax,而不是 data。 ("
s 也一样!)
我正在使用 Python 创建 HTML,使用样板格式并使用 %s
替换文本(我使用 %s 因为我在 codepad.org,它运行 Python2,即使我正在使用 Python3 测试它)。
如果我写一个 HTML 的块,用 %s
替换,一切都很好。
如果我试图让它更灵活,并以块的形式创建 HTML,它就不起作用,即使它对我来说看起来都一样。
我已将其简化为非常短的代码片段 - 我显然做错了什么,但看不到 - 非常感谢帮助!
print ('1abc %s def' % ('X')) # Line 1 - OK
string1 = '1abc %s def' % ('X')
print (string1) # Line 2 - OK
string2 = ("'2abc %s def'" + " % ('X')")
print (string2) # Line 3 - Not OK
第 1 行:WORKS - 输出:1abc X def
第 2 行:WORKS - 输出:1abc X def
第 3 行:不起作用 - 输出:'2abc %s def' % ('X')
% (X,)
不能是 字符串的一部分 ;但是,它可以是您应用于连接字符串的 结果 的内容。
也就是说,下面的工作正常:
string2 = ("2abc " + "%s def") % ('X',)
print(string2)
...但是 %
在这里是 syntax,而不是 data。 ("
s 也一样!)