我想做几个语句,给出标准输出,而不会在语句之间看到换行符.
具体来说,假设我有:
for item in range(1,100):
print item
Run Code Online (Sandbox Code Playgroud)
结果是:
1
2
3
4
.
.
.
Run Code Online (Sandbox Code Playgroud)
如何让它看起来像:
1 2 3 4 5 ...
Run Code Online (Sandbox Code Playgroud)
更妙的是,是否可以打印单号在最后一个号码,所以只有一个号码在屏幕上在同一时间?
我想运行一个脚本,它基本上显示如下内容:
Installing XXX... [DONE]
Run Code Online (Sandbox Code Playgroud)
现在,此刻,我在功能成功后使用print打印整行.但是,我现在希望它首先打印"安装xxx ...",并在功能运行之后添加"DONE"标签; 但是在同一条线上.
有任何想法吗?
我想知道是否有可能删除你用Python打印的项目 - 不是从Python GUI,而是从命令提示符.例如
a = 0
for x in range (0,3):
a = a + 1
b = ("Loading" + "." * a)
print (a)
Run Code Online (Sandbox Code Playgroud)
所以它打印
>>>Loading
>>>Loading.
>>>Loading..
>>>Loading...
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是我希望这一切都在一条线上,为此它会在其他东西出现时自行删除它.因此,不是打印"Loading", "Loading.", "Loading...我希望它打印"Loading.",然后它删除行上的内容并替换它,"Loading.."然后删除"Loading.."并替换它(在同一行)"Loading...".这很难描述.
ps我试图使用Backspace字符,但它似乎不起作用("\b")
谢谢
基本上我想做与这个家伙做的相反的事情......呵呵.
我有一个程序告诉我它有多远.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Run Code Online (Sandbox Code Playgroud)
因此,如果len(some_list)为50,我会将最后一行打印50次.我想打印一行并不断更新该行.我知道我知道这可能是你整天都会读到的最蹩脚的问题.我只是无法弄清楚我需要在谷歌中找到答案的四个字.
更新!我试过mvds的建议哪个看起来没错.新代码
print percent_complete," \r",
Run Code Online (Sandbox Code Playgroud)
完成百分比只是一个字符串(我现在第一次抽象,我试图成为文字).现在的结果是它运行程序,直到程序结束后才打印ANYTHING,然后在一行且只有一行打印"100%完成".
如果没有回车(但是使用逗号,mvds的一半建议),它将一直打印到最后.然后打印:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
Run Code Online (Sandbox Code Playgroud)
等等.所以现在新的问题是用逗号它不会打印直到程序完成.
使用回车并且没有逗号,它的行为与两者都不完全相同.
我读到在打印语句后禁止换行,你可以在文本后面加一个逗号.这里的示例看起来像Python 2. 如何在Python 3中完成?
例如:
for item in [1,2,3,4]:
print(item, " ")
Run Code Online (Sandbox Code Playgroud)
需要更改哪些内容才能将它们打印在同一行上?
\r在 Python 中,您可以使用移回行首在同一行上进行打印。
这对于进度条或增加百分比计数器非常有效,例如:Python print on same line
但是,当打印长度可能会减少的行时,这会将前几行文本保留在那里,例如:
import sys
for t in ['long line', '%']:
sys.stdout.write(t + '\r')
sys.stdout.write('\n')
Run Code Online (Sandbox Code Playgroud)
将终端文本保留为:%ong line。
打印到同一行时,在较长的行之后写较短的行的最佳方法是什么?
我想在我的函数循环期间打印一些调试语句,我使用IPython来调用该函数.让一个示例函数为:
def test_print():
import time
for i in range(5):
time.sleep(2)
print i, time.time()
Run Code Online (Sandbox Code Playgroud)
结果如下:
0 1372337149.84
1 1372337151.84
2 1372337153.85
3 1372337155.85
4 1372337157.85
Run Code Online (Sandbox Code Playgroud)
我希望每行都打印出来,然后等待2秒钟.但行为如下.我首先观察到:
0 1372337149.84
1
Run Code Online (Sandbox Code Playgroud)
然后,在2秒后,我观察1下一行的时间戳和id,即2.我终于看到了最后一张时间戳.我无法弄清楚为什么它表现得像这样,而不是一次一行.有什么想法吗?我是否需要特殊的刷新功能来打印等待打印的内容?
首先,我不是在寻找如何与同一行打印print(some_stuff, end="").
在Python 2.7中,您可以输入:
while True:
for i in ["/","-","|","\\","|"]:
print "%s\r" % i,
Run Code Online (Sandbox Code Playgroud)
并且它会在相同的行中打印出SAME中的那5个字符,使它看起来像是一个条形旋转(实际上你可以尝试一下).问题是,我不能在Python 3.3中做同样的事情,我已经尝试了几件事.我的具体应用是倒数计时器...代码是这样的:
import time
t = 120
while t > 0:
t -= 1
print("Time left till next update: %d seconds" % t)
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
输出应该是字符串,只有在适当的位置改变的秒数...希望有人可以帮我这个.
我正在制作一个记忆游戏,我打印几个单词,在一段时间后,这些单词被洗牌,然后删除一个单词并替换为新单词.然后我会让用户回答哪个单词已被删除,哪个单词已替换该单词.例如,它将打印:
CAT DOG MOUSE HORSE
Run Code Online (Sandbox Code Playgroud)
10秒后,我希望隐藏这些单词,然后将其拖尾并用一个新单词替换一个单词,以便打印出来,例如:
DOG HORSE RABBIT CAT
Run Code Online (Sandbox Code Playgroud)
据我所知,我可以使用time.sleep()该程序暂停执行任何其他代码.
是否更容易基本上"取消打印"第一组单词然后打印新单词或用新单词替换第一组打印的单词.
我很新,很抱歉,如果无法做到这一点.
我想*在1秒的间隔内在命令行上制作flash.
import time
from sys import stdout
while True:
stdout.write(' *')
time.sleep(.5)
stdout.write('\r ')
time.sleep(.5)
Run Code Online (Sandbox Code Playgroud)
我得到的只是一个空白行,没有闪烁*.
这是为什么?
python ×10
printing ×4
python-3.x ×3
stdout ×3
ipython ×1
line-breaks ×1
python-3.2 ×1
python-3.3 ×1
string ×1