繁体   English   中英

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

[英]Why does python puts a space in front of my formatted string

我最近开始学习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文档中所述,将 function print为--

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

所以 print function 采用默认分隔符' ' ,这就是你获得额外空间的原因。 您可以通过以下方式将其删除

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

output

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

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

试试这个: print(notFormatted + formatted)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM