为什么调用第一个打印的结果与调用后四个的结果不同?这是怎么回事?
crates = 5
gap = 10
print(crates * ' ', crates * '#', gap * ' ', crates * '#')
print("differs from:")
print(crates * ' ', end = '')
print(crates * '#', end = '')
print(gap * ' ', end = '')
print(crates * '#')
答案 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:
##### #####
您在第一个字符串中添加了多余的空格' '
,但没有在第二个字符串中添加,并且第二个字符串没有以换行符结尾,而是以空字符结尾