Ich bin ein neuer Python-Programmierer, der den Sprung von 2.6.4 zu 3.1.1 macht. Alles ist gut gegangen, bis ich versucht habe, die 'else if'-Anweisung zu verwenden. Der Interpreter gibt mir einen Syntaxfehler nach dem 'if' in 'else if' aus einem Grund, den ich anscheinend nicht herausfinden kann.
def function(a):
if a == '1':
print ('1a')
else if a == '2'
print ('2a')
else print ('3a')
function(input('input:'))
Mir fehlt wahrscheinlich etwas sehr Einfaches; Ich konnte die Antwort jedoch nicht alleine finden.
python
python-3.x
Paul Turner
quelle
quelle
Antworten:
In Python wird "else if" "elif" geschrieben.
Außerdem benötigen Sie einen Doppelpunkt nach dem
elif
und demelse
.Einfache Antwort auf eine einfache Frage. Ich hatte das gleiche Problem, als ich anfing (in den letzten Wochen).
Ihr Code sollte also lauten:
quelle
elsif
, ich denke, Python musste dieses eine Zeichen effizienter sein. "Elif" scheint mit dem C-Präprozessor entstanden zu sein, der#elif
lange vor Python AFAICT verwendet wurde. In diesem Zusammenhang ist es natürlich wertvoll, eine Single-Token-Direktive zu haben, da Parsing#else if <code>
vs.#else <code that could theoretically even be an if statement>
eine Syntax kompliziert hätte, die einfach sein sollte.Meinst du
elif
?quelle
quelle
Seit jeher ist die richtige Syntax für
if/else if
in Pythonelif
. Übrigens können Sie Wörterbuch verwenden, wenn Sie vielif/else
.eg habenBeispiel für die Ausführung von Funktionen mit dem Wörterbuch für msw.
quelle
elif
.exec
sie ing. Ist das eine gute Praxis? Können Sie ein Beispiel nennen?<foo>
lautetdo_foo
, können Sie das Diktat sogar im laufenden Betrieb erstellen, wenn die App gestartet wird..get
Methode verfügt, mit der Sie einen Standardwert angeben können. Ihr erstes Beispiel kann geschrieben werden alsprint d.get(a, "3a")
Hier ist ein kleines Refactoring Ihrer Funktion (es wird nicht "else" oder "elif" verwendet):
@ ghostdog74: Python 3 benötigt Klammern für "print".
quelle
('1', '2')
, dieSollte korrigiert werden zu:
Wie Sie sehen können, sollten nach '2' Doppelpunkte nach elif stehen, und nach der else-Anweisung sollte eine neue Zeile stehen, und der Abstand zwischen print und den Klammern sollte geschlossen werden.
quelle