使循环一次只打印一个值[重复]
Posted
技术标签:
【中文标题】使循环一次只打印一个值[重复]【英文标题】:Make loop only print a single value at a time [duplicate] 【发布时间】:2018-06-05 14:58:49 【问题描述】:如何制作:
c=5
for i in range(10):
print(c)
c+=1
这样就可以代替像这样的多行打印:
5
6
7
8
9
10
11
12
13
14
在每个循环中它都会去:
5
然后当它再次循环时,它将覆盖现有行:
6
我该怎么做?
【问题讨论】:
如果您想暂停和恢复该功能,请使用yield
。但它不会像“在每个循环中都会打印”,而是“每次调用生成器都会恢复循环”。
@Nishant 你能举个例子吗?
听起来你在谈论覆盖一行的输出。在这种情况下,请查看 curses 库之类的内容:docs.python.org/3/howto/curses.html
您要覆盖现有行吗?如果是这样,您需要修改问题。
@jrd1 是的,我想在每个循环上打印单个数字。当我尝试安装 curses 时,它没有得到任何模块:显然“没有直接的 Python for Windows 端口的 curses 存在。”
【参考方案1】:
在python 3.3
,你可以像下面这样操作
print(c , end="\r", flush=True)
【讨论】:
这为我打印了 14 哈 @geeg 我已经提到上述方法仅适用于 python 3.3。请检查您的 python 版本。 我使用 Python 3.6.3。 3.3 不是较旧的 python 版本吗?我想降级可能会导致其他库出现问题。 我也为python 3.6.1测试了上面的代码 我认为您应该清楚地强调这仅在 Python 3.3 中有效,因为当您看到在 Python3.3 中有效时,您会立即认为这将在更高版本中有效。【参考方案2】:您可以使用回车 ("\r"
) 来解决问题:
import time
c = 5
for i in range(10):
print(c, end='\r')
c += 1
time.sleep(1)
【讨论】:
【参考方案3】:要打印末尾带有空格而不是换行符的文本,您可以使用end
参数。
print("text", end=" ")
在 python2 中,这可以通过尾随逗号来实现:
print "text",
例如,
c = 5
for i in range(10):
print c,
c += 1
【讨论】:
我认为这不是问题所要求的。 请随时edit 更新回复以上是关于使循环一次只打印一个值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
android添加友盟自动更新的时候,如何使app打开一次只提示一次,而不是随着Acitvity的变动而一直提示。