是否使用Python更新以前打印的行(在CLI中)?
我正在用Python开发一个命令行游戏,我想实现一个函数,为玩家的回答设置一个时间限制。基本上,我想做的是更新打印后的第一行:是否使用Python更新以前打印的行(在CLI中)?,python,python-2.7,command-line-interface,Python,Python 2.7,Command Line Interface,我正在用Python开发一个命令行游戏,我想实现一个函数,为玩家的回答设置一个时间限制。基本上,我想做的是更新打印后的第一行: "5.." "5 + 3 = ?" 致: "5..4..3..2..1..Lost" "5 + 3 = ?" 5秒后 printnum,end='\r' end=关键字是此操作的原因,打印以换行符结尾,\n但这可以替换为任何字符串,例如以回车符结束该行,而是将光标返回到当前行的开头。您需要使用python2.7从u_future __导入
"5.."
"5 + 3 = ?"
致:
"5..4..3..2..1..Lost"
"5 + 3 = ?"
5秒后
printnum,end='\r'
end=关键字是此操作的原因,打印以换行符结尾,\n但这可以替换为任何字符串,例如以回车符结束该行,而是将光标返回到当前行的开头。您需要使用python2.7从u_future __导入print_函数
至于同时接收输入,您需要使用模块并在线程中打印更新计数器
import time
from _thread import *
def printcount(secs):
i=5
while i != 0:
print(i, end='\r')
i -= 1
time.sleep(secs)
start_new_thread(printcount, (1))
如果您正在开发一款游戏,那么您需要完全控制控制台输出,而不仅仅是当前行。您需要类似于Python内置的诅咒模块的东西 看看我用curses创建的,它修改了整个屏幕上的控制台输出,这可能会有所帮助。/b是一个退格字符,/r是Linux中的回车符。如果没有打印换行符,只需打印\b*字符号,或打印回车符,并确保第二个字符串至少与第一个字符串一样长。看看Python的curses模块,它允许您在基于文本的应用程序中任意移动光标。我不确定在用户输入期间如何实现这些定时消息,但功能可能就在那里。
import time
from _thread import *
def printcount(secs):
i=5
while i != 0:
print(i, end='\r')
i -= 1
time.sleep(secs)
start_new_thread(printcount, (1))