我正在试图找到一种格式化输入的方法,在输入后保留一些空格,然后在同一行中打印一些字符。你知道吗
这段代码显然不起作用,但可以满足您的需求:
print('|') + var=input("What's your name: ")+(reserved 10 characters) +print('|')
或:
char + input command + Reserverd space + char
我需要这个结果:
'|What's your name?>>> |'
第一个“|”可以,但是第二个呢?空间呢?你知道吗
非常感谢!你知道吗
Tags:
你不能直接做你想做的事。有两种方法。你知道吗
首先,您可以直接打印终端控制序列,以打印出:
…然后将光标移到冒号后面以供用户输入。幸运的是,这里只需要处理一行,所以只需要backspace,这在几乎所有要遇到的终端上都是
'\x08'
,所以它只是:然而,用户将能够在第二个
|
上输入,并且在一些终端上|
将在他一输入就被擦除,并且在一些终端上甚至可以通过在其上退格来擦除它。你知道吗通过使用
termcap
库,或者使用readline
,您可以变得更加复杂,但是这里总是有一些限制;终端处于行缓冲模式,因此在用户点击enter之前,您的代码无法控制发生了什么。你知道吗或者,您可以接管终端并手动管理用户输入,以将用户控制在10个字符以内。在*nix平台上,这是一个由
tcsetattr
和select
以及read
和stdin
组成的复杂的混乱局面;在Windows上,这是一堆在mscvrt
中的“conio”调用,它们更简单,但文档较少。你知道吗但是,如果您真的想这样做,您可能应该使用更高级的库,比如
curses
。你知道吗相关问题 更多 >
编程相关推荐