如何打印值之间没有空格的变量[重复]
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<<
【讨论】:
%
插值容易出现tuple
s 和其他特殊行为的错误。
然而,不知何故,我设法拼凑了代码并让它第一次工作。是的,您必须了解您使用的工具的缺点。在 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
以上是关于如何打印值之间没有空格的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章