Python:使用write()函数输出三个变量

时间:2019-01-23 14:39:37

标签: python syntax

我正在尝试使程序将它们写到新文件中。单独完成每一行很容易,但是结合在一起会产生问题。

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

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


#this here results a syntax error..
target.write (\%r, \%r, \%r) % (line1, line2, line3)

#what do?

4 个答案:

答案 0 :(得分:1)

使用python 3,您可以使用f字符串

target.write (f"{line1} {line2} {line3}")

您可以在官方文档中找到有关f字符串的更多信息 https://www.python.org/dev/peps/pep-0498/

答案 1 :(得分:0)

在Python中,您可以使用+运算符连接字符串,因此请尝试:

target.write(line1+line2+line3)

编辑:带有换行符的版本:

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

答案 2 :(得分:0)

尝试:

targe.write('{} {} {}'.format(line1,line2,line3))

或旧格式:

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

答案 3 :(得分:0)

使用当前的编写行的方法,您需要在字符串中包含“%r”,并且“%(line1,line2,line3)”必须位于“ target.write()”中函数调用

target.write("%r %r %r" % (line1, line2, line3)

但是您也可以尝试使用writelines方法

with open("test.txt", "w+") as file:
    file.writelines([line1, line2, line3])

您还可以将输入包装成一个循环,以从用户那里获取任意数量的行

lines = []
lineCount = 5

for l in range(lineCount):
    lines.append(input("Line %d: " % l) + "\n")

with open("test.txt", "w+") as file:
    file.writelines(lines)