2

我正在通过“以艰难的方式学习 python”来学习 python,但我在练习 16 中遇到了问题:学习练习。如何将以下六行代码转换为一行?:

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

我继续尝试这个:

lines = line1,"\n",line2,"\n",line3,"\n"
target.write(lines)

但这似乎也不起作用,在终端中它说:期望一个字符缓冲区对象

在参考练习 6 之后,我尝试了:

lines = "%s\n%s\n%s\n" % line1,line2,line3
target.write(lines)

然后在终端中显示“TypeError:格式字符串的参数不足”

也试过:

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

并遇到了同样的问题

4

4 回答 4

2

看看练习 6,然后看看你正在写的信息——看起来像这样,不是吗?

'<line>\n<line>\n<line>\n'

练习 6 应该能让你加快速度来解决这个问题。

于 2013-02-05T17:17:59.593 回答
1
target.write('\n'.join(lines)) #assuming all the line #s are put in a list called "lines"
于 2013-02-05T17:41:58.687 回答
0

这对我使用 python 2.7 有用

Lines = "%s\n%s\n%s" % (Line1, Line2, Line3)

target.write(Lines) 

或者

target.write("%s\n%s\n%s" % (Line1, Line2, Line3)) 
于 2015-02-03T22:24:29.733 回答
0

在阅读了关于练习 6 的答案后(我会评论我的帖子,但我不能:o)我写了这段代码:

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
newline = "\n"

print "Now I 'm going to write these to the file."

target.write(line1 + newline + line2 + newline + line3 + newline)

它就像一个魅力!

于 2015-08-08T00:12:13.540 回答