Python-后面的空格

Python-后面的空格,python,python-3.x,whitespace,Python,Python 3.x,Whitespace,为什么在Python3中打印这样的内容时会有一个空白输出? (是否在'\n'字符本身中?) 输出: 1 2 我知道怎么修。这并不复杂,但我只是想知道为什么…print会在每个参数(包括“\n”)后添加一个空格(或sep关键字参数的值)。您可能希望自己将这三个字符串组合成一个参数 print(my_var1 + '\n' + my_var2) 或 比这两种方法都好的是使用格式字符串方法: print('{}\n{}'.format(my_var1, my_var2)) 如果需要,它可以处理

为什么在Python3中打印这样的内容时会有一个空白输出? (是否在
'\n'
字符本身中?)

输出:

1
 2

我知道怎么修。这并不复杂,但我只是想知道为什么…

print
会在每个参数(包括“\n”)后添加一个空格(或
sep
关键字参数的值)。您可能希望自己将这三个字符串组合成一个参数

print(my_var1 + '\n' + my_var2)

比这两种方法都好的是使用
格式
字符串方法:

print('{}\n{}'.format(my_var1, my_var2))
如果需要,它可以处理到
str
的转换,并消除任何临时对象


不过,我更愿意将
sep
设置为
\n
,就像@billy的答案一样。

当在
print
函数中有多个位置参数时,它会将这些参数的
str
形式写入它们之间带有
sep
字符串的字符串,在默认情况下是一个空格(
'
)。有很多方法可以在两行上打印两个变量

print(my_var1)
print(my_var2)


或者这里的无数其他示例。

使用多行注释和f-string

my_var1, my_var_2 = 1,2
print (f"""{my_var1}
{my_var_2}""")
给予

虽然我个人最喜欢的是

my_var1, my_var_2 = 1,2
varlist = [my_var1, my_var_2] 

for var in (varlist):
    print(var)

只需bcos,您就可以有n个变量,可以将它们放入列表中,然后使用循环打印

如果您将多个参数传递给
print
,则会在每个变量之间留出一个空格。尝试指定
sep
关键字参数它是分隔字符
print(my_var1,'\n',my_var2,sep=“”)
这些示例不一定等同于OPs示例,因为变量不会隐式转换为
str
s。我不认为这是一个大问题。如果它们不是字符串,那么它们应该被显式转换(调用者应该知道参数是否是字符串)。另一方面,使用
格式
解决了这个问题,可能比我的仓促建议更可取。当然这不是一个大问题,但我认为这是值得指出的,因为我遇到过许多非Python的人,他们不明白为什么
print(x,'\n',y)
可以用于非字符串,而
print(x+'\n'+y)
不行。我离开计算机后意识到,您的第三个选项可能是最好的(不需要创建临时字符串对象就可以作为参数传递。)谢谢!虽然如果练习只是“在两行上打印两个变量”,那么我认为第一个是最好的,因为它简单,并且不需要任何关于
print
函数的额外知识。
for var in (my_var1, my_var2):
    print(var)
print(my_var1, my_var2, sep='\n')
my_var1, my_var_2 = 1,2
print (f"""{my_var1}
{my_var_2}""")
1
2

[Program finished]
my_var1, my_var_2 = 1,2
varlist = [my_var1, my_var_2] 

for var in (varlist):
    print(var)