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

2024-09-28 17:01:20 发布

您现在位置: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 

如上图所示,第二行以空格开始,以空格结束 我知道我可以使用strip函数删除它,但我很好奇为什么它会出现。是因为\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

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


Tags: to代码issegmentthisfirststripsecond
2条回答

正如pythondoc中提到的那样,print函数

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

所以print函数使用默认的分隔符' ',这就是为什么会得到额外的空间。您可以通过以下方式将其删除:

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)

相关问题 更多 >