为什么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
First: First segment Second: Second segment
First: First segment Second: Second segment
如上所示,第二行以空格开头,以空格结尾。我知道我可以使用 strip 函数将其删除,但我很好奇它为什么会在那里。是因为n吗?
更新:
这段代码的输出将两行合并在一起,所以我应该如何解决这个问题?
回答
正如在 python doc 中提到的,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