2014-12-05 266 views
9

这是用于在嵌套列表中打印所有值的函数(取自Python的Head首先)。Python:语句print中的end =''的含义print(“ t”,end ='')

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不支持的。 此代码附加3行,并在第3行添加附加文本。然后再追加16个空行。

回答

24

默认值end\n这意味着在print声明之后它会打印一个新行。所以,简单地说end是你想要的print语句已被执行

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

+6

我的aspergers要求我将输出更正为'hello +'。 – smassey 2014-12-05 09:13:49

+1

@smassey是的,但问题是,即使我给了一个空间,它没有显示:( – 2014-12-05 09:15:26

+1

你真的不能真的只是结束和结束并不等于一个换行 'end ='''实际上意味着您要在语句结束后留出一个空格而不是新的行字符,因此您可以继续使用“无论”行的同一行 示例 'print(“Hello World”) x ='20' 打印出来(“HI HI”) 打印出第一行=“Hello World”第二行= 20 20 20 20第三行=“HI HI” 然而例 'print (“Hello World”) x ='20' print(“HI HI”) 将打印出第一行= Hello World第二行= 20 20 20 20 HI HI – TheyDontHaveIT 2016-09-25 22:18:09

2

见打印功能的文档:print()

end内容打印完毕后打印。默认情况下,它包含一个换行符("\n"),但它可以更改为其他内容,如空字符串。