newline - python 如何不使用换行符或者空格打印?

问题在标题中。


#include <stdio.h>



int main() {


 int i;


 for (i=0; i<10; i++) printf(".");


 return 0;


}



输出:

 
..........



 

在python中:


>>> for i in xrange(0,10): print '.'


.


.


.


.


.


.


.


.


.


.


>>> for i in xrange(0,10): print '.',


. . . . . . . . . .



在python print中,会添加一个n或一个空格,如何避免?

时间:

常规方式


import sys


sys.stdout.write('.')



你可能还需要调用

 
sys.stdout.flush()



 

确保立即刷新stdout

python 2.6 +

From Python 2.6你可以从python 3导入print函数:


from __future__ import print_function



python 3

在python 3中,print语句已被更改为函数,在Python 3中,你可以改为:

 
print('.', end='')



 

from __future__ import print_function

如果对缓冲有问题,可以通过添加flush=True关键字参数来刷新输出:


print('.', end='', flush=True)



http://www.python.org/search/hypermail/python-1992/0115.html


>>> for i in range(10):


... print i,


... else:


... print


...


0 1 2 3 4 5 6 7 8 9


>>> 



注意:这个问题的标题是类似于"如何在python中使用printf"?


>>> strings = ["one","two","three" ]


>>>


>>> for i in xrange(3):


... print"Item %d: %s" % (i, strings[i])


...


Item 0: one


Item 1: two


Item 2: three



而且,你可以方便地将字符串值相乘:


>>> print"." * 10


..........




# for python2 to use the print() function, removing the print keyword


from __future__ import print_function


for x in xrange(10):


 print('.', end='')




# printf.py



from __future__ import print_function



def printf(str, *args):


 print(str % args, end='')



然后在你的文件里


from printf import printf


for x in xrange(10):


 printf('.')


print 'done'


#..........done



更多显示printf样式的例子


printf('hello %s', 'world')


printf('%i %f', 10, 3.14)


#hello world10 3.140000




import sys


for i in xrange(0,10):


 sys.stdout.write(".")


 sys.stdout.flush()



新的( 从 python 3.0开始) 打印函数有一个可选的结束参数,让我们可以修改结束字符。 也有用于分离器的sep 。

你可以在print函数的末尾添加,,这样它就不会在新行中打印。

使用functools.partial创建一个叫printf的新函数


>>> import functools



>>> printf = functools.partial(print, end="")



>>> printf("Hello worldn")


Hello world



使用默认参数包装函数的简单方法。

python中的print函数自动生成新行,你可以试试:

print("Hello World", end="" )

你可以使用end的打印参数进行操作,


for i in range(10): print('.', end='')



...