Wie zu Lesen, formatierte Eingaben in python?
Ich soll von stdin Lesen fünf Nummern wie folgt eingetragen:
3, 4, 5, 1, 8
in einzelne Variablen a,b,c,d & e.
Wie mache ich das in python?
Habe ich versucht, dieses:
import string
a=input()
b=a.split(', ')
für zwei ganze zahlen, aber es funktioniert nicht. Ich:
Traceback (most recent call last):
File "C:\Users\Desktop\comb.py", line 3, in <module>
b=a.split(', ')
AttributeError: 'tuple' object has no attribute 'split'
Wie dies zu tun? und nehme an, dass ich nicht eine Feste, sondern eine variable Anzahl n ganze zahlen. Dann?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
raw_input()
stattinput()
.Dem irreführenden Namen
input
Funktion nicht tut, was Sie es erwarten. Tatsächlich wertet die Eingabe aus stdin als python-code.In Ihrem Fall es stellt sich heraus, dass das, was Sie dann haben, ist ein Tupel von zahlen in
a
alle analysiert und bereit für die Arbeit, aber in der Regel, die Sie nicht wirklich nutzen wollen, dieses merkwürdige Nebenwirkung. Andere Eingänge kann die Ursache für eine beliebige Anzahl von Dingen zu passieren.Übrigens in Python 3 Sie behoben, und nun ist die
input
- Funktion tut, was Sie erwarten würde.Zwei Dinge:
import string
um einfache string-Manipulationen.Auspacken:
Unter Python 2.x nur (*)
nachdem ein = input()
a ist ein Tupel mit den 5 Werten leicht geparst!
Einen schnellen Weg, um ordnen Sie diese 5 Werte ist
(*) mit Python-version 3.0? oder für sicher, 3.1, Eingang() funktioniert mehr wie die raw_input () - Methode 2.x, das macht es weniger verwirrend. (danke mshsayem hinweisen!)
Wenn Sie drucken ein (die variable mit Ihrem input) finden Sie heraus, dass ein bereits enthält ein Tupel. Sie müssen nicht teilen Sie die Inhalte.