Seite 1 von 1

Code in nächster Zeile fortsetzen

Verfasst: Dienstag 13. Dezember 2022, 14:54
von H3llo
Hallo,

totale Anfängerfrage, aber ich habe nichts auf Google gefunden: Wie kann man seinen Code in der nächsten Zeile fortsetzen, wenn man z. B. sonst eine sehr lange Zeile hätte.

Beispiel:

Code: Alles auswählen

# Bisherige Codezeile
cursor.execute("INSERT INTO tblTest (test_1, test_2, test_3) VALUES (?,?,?)", data_edited["TEST"]["T1"][i], data_edited["TEST"]["T2"][i], data_edited["TEST"]["T3"][i])

# So solls etwa aussehen
cursor.execute("INSERT INTO tblTest (
            test_1, 
            test_2, 
            test_3) 
            VALUES (?,?,?)",
            data_edited["TEST"]["T1"][i], 
            data_edited["TEST"]["T2"][i], 
            data_edited["TEST"]["T3"][i])

Re: Code in nächster Zeile fortsetzen

Verfasst: Dienstag 13. Dezember 2022, 15:22
von __blackjack__
@H3llo: Mehrzeilige Zeichenkettenliterale kennt Python: """ oder '''' als Begrenzer statt " oder '. Und ansonsten weiss der Compiler, dass ein Ausdruck erst zuende ist, wenn alle geöffneten Klammern auch wieder geschlossen sind.

Was ist denn das `i` hier? Es müsste ja eine ganze Zahl sein bei dem Namen. Falls die von 0 bis ``len(data_edited["TEST"]["T1"])`` läuft, und die beiden anderen Datenstrukturen wo `i` als Index verwendet wird genau so lang sind, dann ist das ”falsch” das so zu machen, denn dann würde man kein `i` als Laufindex verwenden, sondern die `zip()`-Funktion. Könnte also gut sein, dass das eigentlich auf das hier raus läuft:

Code: Alles auswählen

        #
        # Kein echtes Python:
        #
        test_data = data_edited["TEST"]
        for i in len(test_data["T1"][i]):
            cursor.execute(
                "INSERT INTO test (test_1, test_2, test_3) VALUES (?,?,?)",
                test_data["T1"][i],
                test_data["T2"][i],
                test_data["T3"][i],
            )
        #
        # Python:
        #
        test_data = data_edited["TEST"]
        cursor.executemany(
            "INSERT INTO test (test_1, test_2, test_3) VALUES (?,?,?)",
            zip(test_data["T1"], test_data["T2"], test_data["T3"]),
        )
Wobei sich natürlich auch die Frage stellt warum das in der `data_edited`-Struktur so komisch ”parallel” abgelegt ist, wenn die Daten anscheinend zusammengehören. Falls man das dort schon ändern könnte, würde man das dort bereits tun.