如何打印值之间没有空格的变量[重复]

问题描述 投票:0回答:6

我想知道如何在打印某些内容时删除多余的空格。

就像我做的那样:

print 'Value is "', value, '"'

输出将是:

Value is " 42 "

但我想要:

Value is "42"

有什么办法可以做到这一点吗?

python whitespace python-2.x
6个回答
76
投票

[在 Python 2.x 中] 如果不需要空格,请不要使用

print ...,
(带有尾随逗号的打印语句)。使用字符串连接或格式化。

连接:

print 'Value is "' + str(value) + '"'

格式:

print 'Value is "{}"'.format(value)

后者更加灵活,请参阅

str.format()
方法文档格式化字符串语法 部分

您还会遇到旧的

%
格式样式:

print 'Value is "%d"' % value
print 'Value is "%d", but math.pi is %.2f' % (value, math.pi)

但这不像较新的

str.format()
方法那么灵活。

在 Python 3.6 及更高版本中,使用格式化字符串 (f-string):

print(f"Value is {value}")

55
投票

这只是一个对未来的简单答案,我发现它很容易作为入门者使用: 类似于使用

end=''
来避免换行,您可以使用
sep=''
来避免空格...对于这里的这个问题,它看起来像这样:
print('Value is "', value, '"', sep = '')

愿它对未来的人有所帮助。


16
投票

逗号提供了额外的空白。

一种方法是使用字符串

%
方法:

print 'Value is "%d"' % (value)

类似于 C 中的

printf
,允许您通过在字符串本身中使用格式说明符来合并和格式化
%
之后的项目。另一个例子,展示了多个值的使用:

print '%s is %3d.%d' % ('pi', 3, 14159)

无论如何,Python 3 允许您为单个

print
调用指定分隔符和终止符,从而极大地改善了这种情况:

>>> print(1,2,3,4,5)
1 2 3 4 5

>>> print(1,2,3,4,5,end='<<\n')
1 2 3 4 5<<

>>> print(1,2,3,4,5,sep=':',end='<<\n')
1:2:3:4:5<<

4
投票

https://docs.python.org/2/library/functions.html#print

print(*对象, sep=' ', end=' ', file=sys.stdout)

注意:此函数通常不能作为内置函数使用,因为名称 print 被识别为 print 语句。要禁用该语句并使用 print() 函数,请在模块顶部使用此 future 语句:

未来导入打印函数


2
投票

以 Martjin 所说的为基础。 我会使用字符串插值/格式化。

在 Python 2.x 中,这似乎是您正在使用的,因为您所做的打印函数周围缺少括号:

print 'Value is "%d"' % value

在 Python 3.x 中,您将使用 format 方法,因此您的代码将如下所示。

message = 'Value is "{}"'
print(message.format(value))

-1
投票
>>> value=42

>>> print "Value is %s"%('"'+str(value)+'"') 

Value is "42"
© www.soinside.com 2019 - 2024. All rights reserved.