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

Posted

技术标签:

【中文标题】如何打印值之间没有空格的变量[重复]【英文标题】:How to print variables without spaces between values [duplicate] 【发布时间】:2015-04-24 12:30:49 【问题描述】:

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

就像我做的那样:

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

输出将是:

Value is " 42 "

但我想要:

Value is "42"

有什么办法吗?

【问题讨论】:

【参考方案1】:

如果您不想使用空格,请不要使用 print ...,(带有尾随逗号)。使用字符串连接或格式化。

串联:

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

格式:

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

后者更加灵活,请参阅str.format() method documentation 和Formatting String Syntax section。

你还会遇到老的% formatting style:

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")

【讨论】:

哦,好吧我不知道,刚学Python,谢谢你的快速回答! ''.format 样式更可取,因为它避免了几个与% 样式相关的边缘情况,例如隐式提升到unicode 和无意的% tuple% dict 使用。 @J.F.Sebastian:更不用说str.format() 支持自定义格式的类;例如,您无法像使用 str.format() 那样轻松地使用 % 格式化 datetime 对象。然后是递归字段定义(可以使用字段来确定其他字段的格式)等【参考方案2】:

只是一个简单的未来答案,我发现它作为初学者很容易使用: 类似于使用end='' 来避免换行,您可以使用sep='' 来避免空格......对于这里的这个问题,它看起来像这样: print('Value is "', value, '"', sep = '')

愿它在未来对某人有所帮助。

【讨论】:

谢谢!这帮助我解决了困扰我多年的问题 这是 python 3 特定的语法。 超级有用的提示 在打印语句中尝试使用三元条件运算符时非常有用,谢谢【参考方案3】:

提供额外空白的是逗号。

一种方法是使用字符串%方法:

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<<

【讨论】:

% 插值容易出现tuples 和其他特殊行为的错误。 然而,不知何故,我设法拼凑了代码并让它第一次工作。是的,您必须了解您使用的工具的缺点。在 any 字段中确实如此。我不是那种倾向于将任意类型传递给我的格式化操作的开发人员:-) 这就是为什么.format 在新用户可能遇到的 99.999% 的 Python 安装中没有任何边缘情况的原因,是对新手更友好的解决方案- @Antti。呃,只是出于兴趣,other 0.001% 是多少?或者这只是为了确定性而保持沉默?并不是说我有这个问题,我自己之前已经做过了。 这意味着,有人可能正在学习 Python 来维护一个运行并坚持 【参考方案4】:

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

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

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

未来导入打印函数

【讨论】:

【参考方案5】:

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

在 Python 2.x 中,由于您执行的 print 函数周围没有括号,这似乎是您正在使用的:

print 'Value is "%d"' % value

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

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

【讨论】:

【参考方案6】:
>>> value=42

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

Value is "42"

【讨论】:

不需要额外的连接来获得" 字符 用户 repr 或者,在本例中为 %r

以上是关于如何打印值之间没有空格的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在打印语句中的变量旁边添加逗号和句点

如何在列之间添加空格[重复]

删除字符串之间不需要的空格[重复]

如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]

如何从结果集中打印值而没有列中的任何重复记录

如何获取和打印环境变量的值?