我希望以下一种方式从用户那里收到一些信息:
我的分数是10 - 已经打印
之间'' ''用户的输入有一个空位,所以他最后没有输入他的信息(如果使用简单的输入()),而是在中间。当用户输入一些信息时,它会出现在'之间。和'
有没有办法做到这一点?
答案 0 :(得分:3)
如果您的终端支持ANSI escape codes:
,那么获得您想要的东西的一种方法就是x = input("My score is \x1b[s of 10\x1b[u")
\x1b
是转义字符。屏幕上没有任何转义字符;相反,它们引入了终端解释为某种指令的字节序列。 ESC[s
告诉终端记住光标当前的位置。 ESC[u
告诉终端将光标移动到最后记住的位置。
(矩形是未聚焦窗口中的光标。)
使用一个抽象出你所使用的确切终端的库是可取的,但是这可以让你了解这些库如何与终端进行交互:它只是写入标准输出的字节。
答案 1 :(得分:2)
如果您使用控制台,请考虑导入curses库。它适用于Linux和Windows。从http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses
下载Windows使用此库,您可以完全控制控制台。以下是您的问题的答案。 How to input a word in ncurses screen?