0

我最近开始学习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

这段代码的输出将两行合并在一起,那么我应该如何解决这个问题?

4

2 回答 2

5

如 python doc中所述,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 
于 2021-01-21T12:58:27.600 回答
0

这是因为 ,print(notFormatted,formatted)两个打印的东西之间放置了一个空格。并且由于您的末尾notFormatted有 a ,然后 python 放置了空格,因此您的打印行在新行之后有一个空格。\n

试试这个:print(notFormatted + formatted)

于 2021-01-21T12:58:44.033 回答