Ich möchte Daten von der Tastatur in Python lesen
Ich versuche das:
nb = input('Choose a number')
print ('Number%s \n' % (nb))
Aber es funktioniert weder mit Eclipse noch im Terminal, es ist immer ein Stopp der Frage. Ich kann eine Nummer eingeben, aber nachdem nichts passiert ist.
Weißt du, warum?
Antworten:
Versuchen
und wenn Sie einen numerischen Wert haben möchten, konvertieren Sie ihn einfach:
quelle
Es scheint, dass Sie hier verschiedene Pythons mischen (Python 2.x vs. Python 3.x) ... Dies ist im Grunde richtig:
Das Problem ist, dass es nur in Python 3 unterstützt wird. Wie @sharpner antwortete, müssen Sie für ältere Versionen von Python (2.x) die folgende Funktion verwenden
raw_input
:Wenn Sie das in eine Zahl umwandeln möchten, sollten Sie versuchen:
... obwohl Sie berücksichtigen müssen, dass dies eine Ausnahme auslösen kann:
Wenn Sie die Nummer in Formatierung drucken möchten, wird in Python 3
str.format()
empfohlen:Anstatt:
Beide Optionen (
str.format()
und%
) funktionieren jedoch sowohl in Python 2.7 als auch in Python 3.quelle
space
nach Ihrer Zeichenfolge, damit der Benutzer seine Eingabe eingeben kann, wenn Frieden herrscht.Enter Tel12340404
vsEnter Tel: 12340404
. sehen! : PNicht blockierendes Beispiel mit mehreren Threads:
Da das Blockieren von Tastatureingaben (da die
input()
Funktionsblöcke) häufig nicht das ist , was wir tun möchten (wir möchten häufig andere Dinge tun), finden Sie hier ein sehr reduziertes Beispiel mit mehreren Threads , um zu demonstrieren, wie Sie Ihre weiterhin ausführen können Hauptanwendung, während die Tastatureingaben bei jedem Eintreffen noch eingelesen werden .Dies funktioniert, indem ein Thread erstellt wird, der im Hintergrund ausgeführt wird, kontinuierlich aufgerufen wird
input()
und dann alle empfangenen Daten an eine Warteschlange übergeben werden.Auf diese Weise kann Ihr Hauptthread alles tun, was er will, und die Tastatureingabedaten vom ersten Thread empfangen, wenn sich etwas in der Warteschlange befindet.
1. Bare Python 3-Codebeispiel (keine Kommentare):
2. Gleicher Python 3-Code wie oben, jedoch mit ausführlichen Erläuterungen:
Beispielausgabe:
Verweise:
Verwandte / Vernetzte:
quelle
input([prompt])
ist äquivalent zueval(raw_input(prompt))
und verfügbar seit Python 2.6Da es (aufgrund von eval) unsicher ist, sollte raw_input für kritische Anwendungen bevorzugt werden.
quelle
raw_input
wurde umbenannt ininput
und wird NICHT ausgewertet.Das sollte funktionieren
quelle
input()
?