target.write(line1 n, line2 n, line3 n)
’ n’仅在字符串文字中有意义。没有引号,您就没有字符串文字。
target.write('line1 n, line2 n, line3 n')
好的,现在所有内容都是字符串文字。但是您希望line1,line2,line3不能是字符串文字。您需要将它们作为python表达式来引用有问题的变量。基本上,您必须在实际上是诸如“
n”之类的文本的字符串两边加上引号,而不能在变量两边加上引号。如果这样做,您可能会得到以下信息:
target.write(line1 'n' line2 'n' line3 'n')
什么
2 2啊 没什么。您必须向python指定如何将这两部分结合起来。所以,你可以有
2 + 2或
2 * 2,但
22没有任何意义。在这种情况下,我们使用加号组合两个字符串
target.write(line + 'n' + line2 + 'n' + line3 + 'n')
继续,
target.write(%r n, %r n, %r n) % (line1, line2, line3)
同样,
n仅在字符串文字内部有意义。%运算符用于生成字符串时,将字符串作为其左侧。因此,您需要在字符串中包含所有这些格式详细信息。
target.write('%r n', '%r n', '%r n') % (line1, line2, line3)
但这会产生3个字符串文字,您只需要一个。如果执行此 *** 作,请写抱怨,因为它只包含一个字符串,而不是3。因此,您可能尝试过以下方法:
target.write('%r n%r n%r n') % (line1, line2, line3)
但是您想将line1,line2,line3写入文件。在这种情况下,您将尝试在写入完成后进行格式化。当python执行此 *** 作时,它将首先运行target.write:
None % (line1, line2, line3)
这将无济于事。要解决此问题,我们需要将
% ()内部
.write()
target.write('%rn%rn%rn' % (line1, line2, line3))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)