将多个 write.target 行合并为一行?

2 投票
4 回答
670 浏览
提问于 2025-04-17 14:51

我正在通过《学习Python的艰难之路》来学习Python,现在在第16个练习的学习 drill 上遇到了麻烦。我想把下面这六行代码合并成一行:

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)

然后终端里显示“类型错误:格式字符串的参数不够”

我还试过:

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

结果还是遇到同样的问题

4 个回答

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)) 
2

看看这个第6个练习,然后再看看你正在写的信息——它看起来有点像这样,对吧?

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

第6个练习应该能让你掌握足够的知识来解决这个问题。

1

在编程中,有时候我们会遇到一些问题,想要找到解决方案。比如说,有人可能在使用某个工具或库时,遇到了错误或者不明白怎么用。这时候,大家会在一个叫StackOverflow的网站上提问,那里有很多程序员会分享他们的经验和解决办法。

在这个网站上,用户可以把自己的问题写出来,其他人看到后就可以给出建议或者解决方案。这样,大家就可以互相帮助,解决各种编程上的难题。

总之,StackOverflow是一个很好的地方,可以让程序员们交流和学习,特别是对于刚入门的小白来说,那里有很多有用的信息和资源。

target.write('\n'.join(lines)) #assuming all the line #s are put in a list called "lines"

撰写回答