Kurze Frage zu Syntax

  • Hallo, ich habe eine kurze Frage zu einem Befehl in Python den ich nicht richtig interpretieren kann:

    wert = (("NULL","0%")[orange == 1],"100%")[blue == 1]

    Was er macht weiß ich, aber wie lautet diese Syntax? Nach was muss ich suchen. EIgentlich ist das ja ein IF .... aber finde nix

    Danke

  • Zur hilfreichsten Antwort springen
  • Der Vergleich liefert True/False. Welche auch die Werte 0 und 1 sind. Und damit einen Index darstellen. Ich würde das heutzutage mit einem ternären if Operator machen.

  • ok danke für die repsone ... eine Frage noch:

    D.h. aber das in dem Statment die Bedingung hinter dem Rückgabewert steht. Ganz verstehe ich die Logik gerade nicht.

    If Logik:

    Code
    if blue == 1: 
       print ("Blau") 
    elif orange == 1: 
       print ("Orange") 
    else: 
       print ("Nichtx")

    Einmal editiert, zuletzt von botswanabub (26. Mai 2020 um 08:15)

    • Hilfreichste Antwort

    Ich sagte ja auch ternäres if. Nicht normales.


    ("NULL","0%")[orange == 1]

    ist äquavilent zu

    "0%" if orange == 1 else "NULL"

    Und das passiert zweimal innerhalb eines Tupels.

  • Nun haben wir den Beweis, dass man auch hässlichen unverständlichen Code mit Python schreiben können.

    Code
    (("NULL","0%")[orange == 1],"100%")[blue == 1]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!