在一个打印命令中打印几个字符串与使用多个打印命令打印它们不同

时间:2019-06-19 18:33:17

标签: python string output

为什么调用第一个打印的结果与调用后四个的结果不同?这是怎么回事?

crates = 5
gap = 10

print(crates * ' ', crates * '#', gap * ' ', crates * '#')

print("differs from:")

print(crates * ' ', end = '')
print(crates * '#', end = '')
print(gap * ' ', end = '')
print(crates * '#')

1 个答案:

答案 0 :(得分:1)

从文档中:https://docs.python.org/3/library/functions.html#print

  

print(* objects,sep ='',end ='\ n',file = sys.stdout,flush = False)

     

将对象打印到文本流文件中,以Sep分隔,然后以end分隔。 sep,end,file和flush(如果存在)必须作为关键字参数给出。

在第一种情况下,在print中打印多个用逗号分隔的字符串会在它们之间添加一个显式空格' ',这是因为print的默认参数sep=' '会将多个分隔开空格打印的项目

In [124]: print('hello','world')                                                                                                                             
hello world

在第二种情况下,放置end = ''可以确保没有一行被换行符\n终止(根据默认参数end='\n'),而不是一个空字符< / p>

In [130]: print('hello',end='') 
     ...: print('world',end='')                                                                                                                              
helloworld

运行问题中的示例可以为我们提供

      #####            #####
differs from:
     #####          #####

您在第一个字符串中添加了多余的空格' ',但没有在第二个字符串中添加,并且第二个字符串没有以换行符结尾,而是以空字符结尾