2024-05-16 23:51:34 发布
网友
我有这个密码:
>>> for i in xrange(20): ... print 'a', ... a a a a a a a a a a a a a a a a a a a a
我想输出'a',而不是' '这样:
'a'
' '
aaaaaaaaaaaaaaaaaaaa
有可能吗?
来自What’s New in Python 2.6文档中的PEP 3105: print As a Function:
>>> from __future__ import print_function >>> print('a', end='')
显然,这只适用于python 3.0或更高版本(或者2.6+在开头使用from __future__ import print_function)。在Python 3.0中,print语句被删除,并默认成为print()函数。
from __future__ import print_function
print
print()
有很多方法可以达到你的效果。如果您只是想为您的案例找到一个解决方案,请使用string multiplication正如@Ant所提到的那样。只有当每个print语句都打印相同的字符串时,这才起作用。注意,它适用于任意长度字符串的乘法(例如'foo' * 20工作)。
'foo' * 20
>>> print 'a' * 20 aaaaaaaaaaaaaaaaaaaa
如果您一般想这样做,请建立一个字符串,然后打印一次。这将占用字符串的一点内存,但只对print进行一次调用。注意,使用+=的字符串连接现在与要连接的字符串的大小成线性关系,因此这将非常快。
+=
>>> for i in xrange(20): ... s += 'a' ... >>> print s aaaaaaaaaaaaaaaaaaaa
或者可以更直接地使用sys.stdout.write(),它是print的包装。这将只写入您提供的原始字符串,而不进行任何格式化。注意,即使在20as的末尾也不会打印换行符
a
>>> import sys >>> for i in xrange(20): ... sys.stdout.write('a') ... aaaaaaaaaaaaaaaaaaaa>>>
Python 3将print语句更改为print() function,这允许您设置end参数。您可以在>;=2.6中使用它,方法是从__future__导入。不过,在任何严肃的2.x代码中,我都会避免这种情况,因为对于那些从未使用过3.x的人来说,这会有点让人困惑。不过,它应该能让您体验到3.x带来的好处。
end
__future__
>>> from __future__ import print_function >>> for i in xrange(20): ... print('a', end='') ... aaaaaaaaaaaaaaaaaaaa>>>
可以通过将空字符串打印到print语句之间的stdout来抑制空格。
>>> import sys >>> for i in range(20): ... print 'a', ... sys.stdout.write('') ... aaaaaaaaaaaaaaaaaaaa
但是,一个更干净的解决方案是首先构建要打印的整个字符串,然后用一个print语句输出它。
来自What’s New in Python 2.6文档中的PEP 3105: print As a Function:
显然,这只适用于python 3.0或更高版本(或者2.6+在开头使用
from __future__ import print_function
)。在Python 3.0中,print
语句被删除,并默认成为print()
函数。有很多方法可以达到你的效果。如果您只是想为您的案例找到一个解决方案,请使用string multiplication正如@Ant所提到的那样。只有当每个
print
语句都打印相同的字符串时,这才起作用。注意,它适用于任意长度字符串的乘法(例如'foo' * 20
工作)。如果您一般想这样做,请建立一个字符串,然后打印一次。这将占用字符串的一点内存,但只对
print
进行一次调用。注意,使用+=
的字符串连接现在与要连接的字符串的大小成线性关系,因此这将非常快。或者可以更直接地使用sys.stdout.write(),它是
print
的包装。这将只写入您提供的原始字符串,而不进行任何格式化。注意,即使在20a
s的末尾也不会打印换行符Python 3将
print
语句更改为print() function,这允许您设置end
参数。您可以在>;=2.6中使用它,方法是从__future__
导入。不过,在任何严肃的2.x代码中,我都会避免这种情况,因为对于那些从未使用过3.x的人来说,这会有点让人困惑。不过,它应该能让您体验到3.x带来的好处。可以通过将空字符串打印到
print
语句之间的stdout来抑制空格。但是,一个更干净的解决方案是首先构建要打印的整个字符串,然后用一个
print
语句输出它。相关问题 更多 >
编程相关推荐