在一行中动态打印我想做几个给出标准输出的声明,而不会在语句之间看到换行符。具体来说,假设我有:for item in range(1,100):
print item结果是:1234...如何使它看起来像:1 2 3 4 5 ...更好的是,是否可以打印单个数字?过关最后一个数字,所以一次屏幕上只有一个数字?
3 回答

MMTTMM
TA贡献1869条经验 获得超4个赞
print item
print item,
在Python2.7中 print(item, end=" ")
在Python 3中
print(item, sep=' ', end='', flush=True)
在Python 3中

动漫人物
TA贡献1815条经验 获得超10个赞
顺便说一下.如何每次刷新它,以便它打印在一个地方,只需改变数字。
'\r'
from sys import stdoutfrom time import sleepfor i in range(1,20): stdout.write("\r%d" % i) stdout.flush() sleep(1)stdout.write("\n") # move the cursor to the next line
这个 \r
放在字符串的开头,这样,当程序运行时,光标总是在数字后面。这不仅仅是化妆品:如果你反过来做的话,一些终端仿真器会感到非常困惑。 如果不包括最后一行,那么在程序终止后,shell将在数字的上方打印它的提示符。 这个 stdout.flush
在某些系统中是必要的,否则您将得不到任何输出。其他系统可能不需要它,但它不会造成任何伤害。
stdout.write
print
print

翻过高山走不出你
TA贡献1875条经验 获得超3个赞
print item,
print(item, end=" ")
.
to = 20digits = len(str(to - 1))delete = "\b" * (digits + 1)for i in range(to): print "{0}{1:{2}}".format(delete, i, digits),
sys.stdout
import sys to = 20digits = len(str(to - 1))delete = "\b" * (digits)for i in range(to): print("{0}{1:{2}}".format(delete, i, digits), end="") sys.stdout.flush()
添加回答
举报
0/150
提交
取消