2017-03-21 1 views
1

Ich weiß, dass Sie in der vorhergehenden Zeile durch die Verwendung Ende drucken = „“ zBPython 3 Wie auf einer vorherige Eingabezeile drucken

import time 

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

aber ist es eine Möglichkeit, es mit einem Eingang zu tun, wie es kommt mit einem Fehler auf. Wenn der Benutzer beispielsweise eine Frage erhält, gibt er eine Antwort ein und druckt neben der Eingabe ein ✘ oder ✔ aus.

Dies ist nicht mit Ende = "" aber ein anderer Weg?

PS \ r und \ b funktionieren nicht

+0

mit der Wenn Sie so etwas wie möchten, dass Sie ncurses verwenden sollten – Sygmei

Antwort

0

Bis Sie eine neue Zeile nach der Eingabe verwenden, Python nicht STDIN lesen Sie die Eingabe zu übernehmen.

Also, Sie können die Nachricht nicht direkt nach der Eingabe drucken.

0

Ihre Frage ist nicht klar. Aber so weit mein Verständnis unten ist die Antwort.

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

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

Danke, aber ich möchte das ✘ oder ✔ auf der gleichen Linie wie die Eingangs gedruckt werden nicht die Antwort des Benutzers, die in der nächsten Zeile mit ✘ oder repr nachgedruckt wurde. –

1

Hier ist ein Weg, 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✘