python 3如何在以前的输入行上打印

时间:2017-03-21 10:21:45

标签: python python-3.x printing

我知道您可以使用end =""在上一行打印e.g

import time

print("Loading",end="")
for i in range(3):
    print(".",end="")

但有没有办法用输入来做,因为它会出现错误。 例如,用户被问到一个问题,然后他们输入答案,并在输入旁边打印✘或✔。

#Doesn't work
print("What is the capital of england?")
ans = input("+-> ",end="")

if ans == "London":
    print("✔")
else:
    print("✘")

这不是使用end =""但是另一种方式呢?

PS \ r \ n和\ b不能正常工作

3 个答案:

答案 0 :(得分:1)

以下是使用ANSI/VT100 Terminal Control Escape Sequences

的一种方法
In [103]: def ask():
              CURSOR_UP_ONE = '\x1b[1A'
              ERASE_LINE = '\x1b[2K'
              message = "What is the capital of england? "
              answer = input(message)
              if answer == "London":
                  print(CURSOR_UP_ONE + ERASE_LINE + message + answer + "✔")
              else:
                  print(CURSOR_UP_ONE + ERASE_LINE + message + answer + "✘")
   .....: 

In [104]: ask()
What is the capital of england? Paris✘

答案 1 :(得分:0)

在输入后使用新行之前,Python不会读取STDIN来接受输入。

因此,您无法在输入后立即打印消息。

答案 2 :(得分:0)

你的问题有点不清楚。但到目前为止我的理解是答案。

print("what is capital of England")
inp = input()

if(inp =="London"):
    print(inp+"->✔")
else:
    print(inp+"->✘")