[英]Why does python allow omitting space in front of boolean operator but not after?
[英]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.