python - 如何在一行中写多个字符串?

标签 python string

我已经开始使用 LPTHW 学习 Python,并且我已经完成了练习 16:

http://learnpythonthehardway.org/book/ex16.html

感觉自己像个白痴,因为我无法弄清楚需要以下内容的看似简单的“额外学分”作业之一:

target.write(line1)
target.write('\n')
target.write(line2)
target.write('\n') 
target.write(line3)
target.write('\n') 

要浓缩成一行代码。我尝试了以下一些方法:

target.write(line1 \n, line2 \n, line3 \n)

或者:

target.write('line1 \n, line2 \n, line3 \n')

或者:

target.write(%r \n, %r \n, %r \n) % (line1, line2, line3)

我无法让它重写同一行中的第 1 行、第 2 行和第 3 行字符串。我尝试了各种其他组合,有和没有逗号、引号等。我不断收到各种错误,例如无效语法或我有太多参数。

最佳答案

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 + 22 * 22 2 没有任何意义。在这种情况下,我们使用 add 来组合两个字符串

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)

但是您想将第 1 行、第 2 行、第 3 行写入文件。在这种情况下,您正在尝试在写入完成后进行格式化。当 python 执行它时,它将首先运行 target.write 离开:

None % (line1, line2, line3)

这不会做任何有用的事情。为了解决这个问题,我们需要将 % () 放在 .write()

target.write('%r\n%r\n%r\n' % (line1, line2, line3))

关于python - 如何在一行中写多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8691311/

相关文章:

python - 实现 All/Universal 集

c# - 具有特定要求的拆分字符串

java - 如何在 Java 中比较字符串?

java - java中的正则表达式解析仅包含特定字符同时允许空格的字符串

Python 事件循环 w/gevent

python - python中的自执行函数

python - Python 3 已经被广泛采用了吗?

c++ - 计算文件中的偶数行数

C++如何将大字符串放入固定字符数组中

python - 尝试将图像文件上传到集合时出现 400 错误