In Python können Sie nicht mehrdeutig sein. Entweder Sie haben
if (x > 0):
if (y > 0):
print "hello"
else:
print "world"
oder
if (x > 0)
if (y > 0)
print "hello"
else:
print "world"
Die Vertiefung zeigt, welche "if" entspricht der "else". [Hinweis: Versuchen Sie, wie ich könnte, ich kann das "else" im ersten Beispiel nicht richtig unter dem ersten "wenn" ausrichten.]
In allen Sprachen, die ich gesehen habe, die diese besondere Ambiguität erlauben, das "else" stimmt mit dem letzten "if" überein. Das mag nicht für alle Sprachen gelten, die jemals existierten. Normalerweise ist es beim Schreiben des Parsers am einfachsten, das "else" mit dem nächsten "if" auf dem Stack zu vergleichen.
Eine ähnliche Frage: Was ist das Ergebnis von 5 - 2 + 1? Ist es 4 oder 2? Persönlich verwende ich immer Klammern, wenn ich (x - y) + z oder x - (y + z) schreibe, weil ich mich nie erinnern kann, auf welche Weise der Parser gehen wird.
Interessante Frage, die aber wird man die richtige Antwort sein? – ralphtheninja
ich denke, die antwort könnte lauten: es gibt wahrscheinlich keine sprache, die mit dem am weitesten entfernten if übereinstimmt. Einige Sprachen machen es zwingend erforderlich, dass Sie dies durch das Erzwingen von geschweiften Klammern verdeutlichen, oder verwenden Sie einfach die Einrückung, um anzugeben, welcher (Python) zugeordnet werden soll. –