Lesen Sie zwei Variablen in einer einzigen Zeile mit Python
Ich bin vertraut mit der Funktion input (), Lesen einer einzigen Variablen aus Benutzereingaben. Gibt es einen ähnlich einfachen Weg, um Lesen Sie zwei Variablen?
Ich bin auf der Suche nach den Gegenwert von:
scanf("%d%d", &i, &j); // accepts "10 20\n"
Einerseits bin ich in der Lage, dies zu erreichen, ist die Verwendung raw_input()
und dann split
was eingegeben wurde. Gibt es eine elegantere Möglichkeit?
Dies ist nicht für den live-Einsatz. Gerade für das lernen..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, der übliche Weg ist
raw_input().split()
In Ihrem Fall könnten Sie
map(int, raw_input().split())
wenn Sie wollen, dass Sie ganze zahlen anstatt stringsNicht verwenden
input()
für, die. Überlegen Sie, was passiert, wenn der Benutzerraw_input
wurde umbenannt, uminput
. (Und das ursprüngliche Verhalten desinput
verwendeneval(input)
.)eval
dem Ausganginput
".int(input()
, wenn Sieeval(input())
in Python ist3 Sie erhalten eine sehr gefährliche backdoor, weil die Benutzer werden in der Lage sein, beliebige python-Anweisung (auch os.system) mit dem Sie Benutzer-Rechte.input
Verhalten in Python 3.Lesen Sie auch die von sys.stdin
Ich bin neu in diesem Zeug. Tat ein wenig Forschung von der python.org website und ein bisschen von hacking, diese zu arbeiten. Die raw_input Funktion ist wieder zurück geändert von Eingang. Dies ist, was ich kam mit:
Zugegeben, der code ist nicht so elegant wie die one-Liner mit C scanf oder C++'s cin. Der Python-code sieht näher an Java (die beschäftigt eine ganz andere Mechanismus von C, C++ oder Python), so dass jede variable muss getrennt behandelt werden.
In Python, die raw_input Funktion ruft Zeichen aus der Konsole und verkettet Sie in einer einzigen String als Ausgabe. Wenn nur eine variable auf der linken Seite des zuweisungsoperators, die split Funktion bricht diese String in eine Liste von String Werte .
In unserem Fall, wo wir erwarten, dass zwei Variablen, die wir bekommen können Werte in diese mit einem Komma-getrennte Liste mit den für Ihre Identifizierung. String Werte dann zugewiesen bekommen, in die Variablen aufgeführt. Wenn wir wollen, rechnen mit, diese Werte, die wir brauchen, um konvertieren Sie Sie in das numerische int (oder float) Datentyp verwenden Python ' s built-in int oder float Funktion.
Ich weiß, dieses posting ist eine Antwort auf eine sehr alte posting und wohl auch das wissen wurde es als "common knowledge" für einige Zeit. Allerdings hätte ich geschätzt auf ein posting, so wie dieses eher als ich nach ein paar Stunden zu verbringen suchen und hacken, bis ich kam, was ich fühlte, war die eleganteste Lösung präsentiert werden kann in einer CS1 Klassenzimmer.
Erstens Lesen Sie das komplette Zeile in einen string wie
Dann verwenden Sie eine for-Schleife wie diese
Diese Schleife nimmt eine vollständige Zeile als Eingabe für den string und die Prozesse, die Teile einzeln und dann fügt die zahlen auf der Liste lst, die nach Umwandlung in Ganzzahlen .
Können Sie diese Methode auch verwenden, für eine beliebige Anzahl von Eingängen. Betrachten Sie die folgenden drei Eingänge, getrennt durch Leerzeichen:
oder Sie können dies tun,
können Sie Lesen 2 int Werte mit diesem in python 3.6.1