为什么python在我格式化的字符串前面放一个空格



我最近开始学习python,发现它非常迷人。然而,当我尝试格式化字符串时,f"{var}..."在它前面有一个多余的空间。

这是我的代码:

# Formatted Strings
segment1 = "First segment"
segment2 = "Second segment"
notFormatted = "First: " + segment1 + " Second: " + segment2 + "n"  # This is hard to read / maintain
formatted = f"First: {segment1} Second: {segment2} n"  # This approach is much cleaner
print(notFormatted, formatted)  # Should output same text

我得到了什么:[在控制台]

First: First segment Second: Second segment
First: First segment Second: Second segment 

如上所示,第二行以空格开始,以空格结束我知道我可以使用条带函数来删除它,但我很好奇为什么它在那里。是因为n吗?


更新:

# Formatted Strings
segment1 = "First segment"
segment2 = "Second segment"
notFormatted = "First: " + segment1 + " Second: " + segment2 + "n".strip()  # This is hard to read / maintain
formatted = f"First: {segment1} Second: {segment2} n".strip()  # This approach is much cleaner
print(notFormatted, formatted)  # Should output same text

这段代码将两行合并在一起,我该如何解决这个问题?

如python文档中所述,print函数为——

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

所以打印函数需要一个默认的分隔符' ',这就是为什么你得到额外的空间。你可以通过

删除它
print(notFormatted, formatted, sep='')  # Should output same text

输出
First: First segment Second: Second segment
First: First segment Second: Second segment 

这是因为print(notFormatted,formatted)中的,在两个打印的东西之间放了一个空格。因为你的notFormatted在末尾有一个n,然后python放上空格,你打印的行在新行后面有一个空格。

试试这个:print(notFormatted + formatted)

相关内容

最新更新