python中的高级输入

时间:2017-02-11 13:00:22

标签: python python-3.x input

我希望以下一种方式从用户那里收到一些信息:

我的分数是10 - 已经打印

之间'' ''用户的输入有一个空位,所以他最后没有输入他的信息(如果使用简单的输入()),而是在中间。当用户输入一些信息时,它会出现在'之间。和'

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

如果您的终端支持ANSI escape codes

,那么获得您想要的东西的一种方法就是
x = input("My score is \x1b[s  of 10\x1b[u")

\x1b是转义字符。屏幕上没有任何转义字符;相反,它们引入了终端解释为某种指令的字节序列。 ESC[s告诉终端记住光标当前的位置。 ESC[u告诉终端将光标移动到最后记住的位置。

enter image description here

(矩形是未聚焦窗口中的光标。)

使用一个抽象出你所使用的确切终端的库是可取的,但是这可以让你了解这些库如何与终端进行交互:它只是写入标准输出的字节。

答案 1 :(得分:2)

如果您使用控制台,请考虑导入curses库。它适用于Linux和Windows。从http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses

下载Windows

使用此库,您可以完全控制控制台。以下是您的问题的答案。 How to input a word in ncurses screen?