新行上的Python print语句

时间:2014-01-01 16:38:43

标签: python string

我有一个程序可以打印出这样的数组中的字符串:

for x in strings
    print x,

哪个工作正常,字符串全部打印在我想要的同一行上,但是我还必须在新行上打印出不属于数组的字符串。像这样:

for x in strings:
    print x,
print second_name

最终在同一行上打印。我想让second_name在换行符上打印,我该怎么做?

3 个答案:

答案 0 :(得分:7)

使用换行符\n

print '\n' + second_name

答案 1 :(得分:4)

我个人认为最好在这里使用str.join

print " ".join(strings)
print second_name

for-loop看起来有点矫枉过正。

答案 2 :(得分:0)

最直接的解决方案是,如果您在循环中使用“print”而没有最终换行符,请在此循环后添加;所以代码看起来像

for x in strings:
    print x,
print ## this terminates the first output line
print second_name

根据其概念,这是印刷“API”的最恰当用法。

OTOH K DawG的答案在其他方面确实基本相同,将默认结尾'\ n'置于下一个“print”的开头,并且stdout的流性质使这两个变体的结果相同。

注意你的构造不能直接移植到Python3。 Python2的print在每个参数之前添加一个空格,除非输出不在行的开头。 Python3的分隔符应用于参数之间,但不是在行中的第一个之前。所以这种方式(从BASIC克隆)不是透视,应该用自己的方式替换,如:

out = ''
for x in strings:
out += ' ' + x
print(out[1:])
print(second_name)

但是," ".join(strings)通常更快,更清晰易读。