【问题标题】:how do I keep my input at the same screen location?如何将我的输入保持在同一屏幕位置?
【发布时间】:2013-10-29 01:30:13
【问题描述】:

我目前的输入法是for循环。我输入一个整数,它被添加到一个列表中,然后它转到下一个输入。每次运行时都会产生一条新线。我想将输入条目保留在同一位置。我是 Python 和一般编程的新手,所以我不知道从哪里开始。我的输入语句是这样的形式:

var= input(" message: ")

谢谢

【问题讨论】:

  • 不清楚你想达到什么目的?
  • 你能解释一下I would like to keep the input entries at the same location的意思吗?

标签: python


【解决方案1】:

如果您使用的是 UNIX 或 Windows 终端,您可以添加一个 ASCI 转义符 ("\033[A") 将光标向上移动一行以再次请求输入,如 example here 所示,所以这样,您可以通过“覆盖”之前的输入消息来在相同位置获取输入消息。

【讨论】:

    【解决方案2】:

    tl;dr:大多数简单的应用程序不这样做是有原因的:需要做很多工作却没有太多回报。

    如果您要确保"message: " 行始终出现在窗口中的同一位置,那么您不能使用普通的input 来做到这一点:它不需要“行尾” " 参数,实际上换行发生在输入获取输入字符串之前。 (即当用户点击RETURN。)

    可以做到这一点,特别是如果你不关心Windows,使用getch模式,这基本上是说终端将字符传递给你,而不是整行,你需要决定如何解释它们。 getch package 似乎可以在这里提供帮助,它甚至支持 Windows!

    另一种选择(当您需要手术刀时,可能没有那么有效或核弹)是使用诸如诅咒或blessings'terminal.location 能力之类的东西。我相信,祝福包含 ANSI 转义字符。 (正如the other answer 中提到的这个问题,这可能是正确的方法。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多