print("\t",end='')语句中end=''的含义是什么?

15
这是一个用于打印嵌套列表中所有值的函数(摘自《Python头脑风暴》)。

def printall(the_list, level):
    for x in the_list:
        if isinstance(x, list):
            printall(x, level=level + 1)
        else:
            for tab_stop in range(level):
                print("\t", end='')
        print(x)

这个函数的功能正常。

该函数基本上会打印列表中的值,并且如果有嵌套列表,则通过一个制表符空格进行打印。

只是为了更好地理解,end=' ' 是什么作用?

我正在使用Python 3.3.5。

对于2.7版本:

f =  fi.input( files = 'test2.py', inplace = True, backup = '.bak')
for line in f:
    if fi.lineno() == 4:
        print line + '\n'
        print 'extra line'
    else:
        print line + '\n'

截至2.6版本,fileinput不支持with语句。以下代码追加了3行文本,并在第3行新行上打印追加的文本,然后再追加16个空行。

2个回答

39

end 的默认值是 \n,这意味着在 print 语句后会打印一个新行。因此,简单地说,end 是在执行 print 语句后要打印的内容。

例如:- print ("hello",end=" +") 将打印 hello +


8
我的亚斯伯格症需要我将输出更正为“hello + ”。 - smassey
2
@smassey 是的,但问题是即使我已经留了一个空格,它也没有显示 :( - Bhargav Rao
3
你不能只是简单的结束,end 也不等同于一个换行符。end=' ' 实际上意味着你想在语句结束后添加一个空格而不是一个新行字符。所以你可以在同一行上继续 "Whatever"。例如:print("Hello World") x = '20' print(x, x, x, x) print("HI HI")将输出:第1行 = "Hello World",第2行 = 20 20 20 20,第3行 = "HI HI"然而,例如:print("Hello World") x = '20' print(x, x, x, x, end=' ') print("HI HI")将输出:第1行 = Hello World,第2行 = 20 20 20 20 HI HI - imbatman
end 只能在 Python 3 上运行,不能在 2.7 版本上使用。 - Shyam Gupta
@ShyamGupta 是的 - Bhargav Rao

4
请查看打印函数的文档:print() end 的内容会在您想要打印的内容之后被打印出来。默认情况下,它包含一个换行符 ("\n"),但可以更改为其他内容,例如空字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接