-5

我一直在尝试在 python 上找到一种在同一行和列上从 1 移动到 9 的方法。

我想要这样的输出:1 然后它很清楚屏幕然后它将在与 1 相同的位置打印 2。

这甚至可能吗?

PS我是菜鸟蟒蛇。

4

2 回答 2

0

如果您不能使用更高级的机制(如ANSI 转义码)来控制光标定位,则始终可以使用 ASCII 退格和/或回车来伪造它。退格 ( \b) 将返回同一行的一个位置,回车 ( \r) 将返回到行首。

以下代码片段将输出从 1 到 9 的数字,中间有半秒的暂停:

import sys
from time import sleep

for i in range(1, 10):
    print '{0}\r'.format(i),
    sys.stdout.flush() # manual flush because we aren't writing newlines
    sleep(.5)

如果您需要,该curses模块提供了更高级的定位机制。

于 2013-05-10T03:16:15.763 回答
0

你的意思就像我们在下载和安装软件包时看到的那样吗?没有位置移动的百分比变化?

试试这样的:</p>

import sys
import time
for i in range(1,10):
    sys.stdout.write('%d\r' %i)
    sys.stdout.flush()
    time.sleep(1)
于 2013-05-10T03:20:43.833 回答