当前位置:  开发笔记 > 编程语言 > 正文

如何防止Python打印添加换行符或空格?

如何解决《如何防止Python打印添加换行符或空格?》经验,为你挑选了10个好方法。

在python中,如果我说

print 'h'

我收到了字母h和换行符.如果我说

print 'h',

我收到了字母h而没有换行.如果我说

print 'h',
print 'm',

我收到了字母h,空格和字母m.如何防止Python打印空间?

print语句是同一循环的不同迭代,所以我不能只使用+运算符.



1> Federico A. ..:

只是评论.在Python 3中,您将使用

print('h', end='')

抑制endline终结符,和

print('a', 'b', 'c', sep='')

抑制项之间的空白分隔符.


您可以在Python 2.6中从__future__ import print_function`
从__future__ import print_function将使用同一模块中的旧语法打破任何其他打印语句,因此虽然它比sys.stdout.write更优雅,但进行更改可能会更多.

2> Greg Hewgill..:

您可以使用:

sys.stdout.write('h')
sys.stdout.write('m')


这对我很有用.当你准备好在屏幕上显示它时,不要忘记做一个sys.stdout.flush(),否则它会将它保存在一个缓冲区中,你将看不到它.我使用它来提供视觉反馈,表示脚本在经过很长时间或for循环时仍在运行.
如果键入是一个问题,请不要忘记你可以这样做:log = sys.stdout.write
要使用它,你必须使用`import sys`导入`sys`

3> Dan..:

Greg是对的 - 你可以使用sys.stdout.write

但是,也许您应该考虑重构算法以累积的列表然后

lst = ['h', 'm']
print  "".join(lst)



4> 小智..:

或使用a +,即:

>>> print 'me'+'no'+'likee'+'spacees'+'pls'
menolikeespaceespls

只需确保所有都是可连接的对象.


或者,你可以转换它们:print str(me)+ str(no)+ str(likee)+ str(spacees)+ str(pls)
这仍然添加换行符.

5> tzot..:
Python 2.5.2 (r252:60911, Sep 27 2008, 07:03:14)
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print "hello",; print "there"
hello there
>>> print "hello",; sys.stdout.softspace=False; print "there"
hellothere

但实际上,你应该sys.stdout.write直接使用.



6> Brian..:

为完整起见,另一种方法是在执行写入后清除softspace值.

import sys
print "hello",
sys.stdout.softspace=0
print "world",
print "!"

版画 helloworld !

但是,对于大多数情况,使用stdout.write()可能更方便.



7> 小智..:

这可能看起来很愚蠢,但似乎是最简单的:

    print 'h',
    print '\bm'


这仍然会添加换行符。

8> John Machin..:

重新获得对控制台的控制权!只是:

from __past__ import printf

其中__past__.py包括:

import sys
def printf(fmt, *varargs):
    sys.stdout.write(fmt % varargs)

然后:

>>> printf("Hello, world!\n")
Hello, world!
>>> printf("%d %d %d\n", 0, 1, 42)
0 1 42
>>> printf('a'); printf('b'); printf('c'); printf('\n')
abc
>>>

额外奖励:如果你不喜欢print >> f, ...,你可以将这个caper扩展到fprintf(f,...).



9> joker..:

我没有添加新答案.我只是以更好的格式提出最好的答案.我可以看到评级的最佳答案是使用sys.stdout.write(someString).你可以尝试一下:

    import sys
    Print = sys.stdout.write
    Print("Hello")
    Print("World")

会产生:

HelloWorld

就这些.



10> Benjamin..:

在python 2.6中:

>>> print 'h','m','h'
h m h
>>> from __future__ import print_function
>>> print('h',end='')
h>>> print('h',end='');print('m',end='');print('h',end='')
hmh>>>
>>> print('h','m','h',sep='');
hmh
>>>

因此,使用__future__中的print_function可以明确设置print函数的sepend参数.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有