Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13564|Antwort: 1

[Kommunikation] 17 häufige Python-Laufzeitfehler für Neulinge

[Link kopieren]
Veröffentlicht am 05.12.2015 13:08:56 | | |

Beim Erlernen von Python kann es etwas kompliziert sein, die Bedeutung der Python-Fehlermeldungen zu verstehen. Hier ist eine Liste einiger häufiger Laufzeitfehler, die zum Absturz Ihres Programms führen.


1) Vergessen, :(am Ende von if, elif, else, für eine Weile, Klasse, def def def def hinzuzufügen.

        Der Fehler tritt in Code wie diesem auf:

if spam == 42
    drucken ("Hallo!")

2) Verwendung = statt == (was zu "SyntaxError: ungültige Syntax" führt)

        = ist der Zuweisungsoperator und == ist gleich der Vergleichsoperation.Der Fehler tritt in einem Code wie diesem auf:

wenn Spam = 42:
    drucken ("Hallo!")

3) Falsche Verwendung von Eindrücken. (Resultierend in "IndentationError:unerwarteter Einzug", "IndentationError:unindent entspricht keinem äußeren Indetationsniveau" und "IndentationError:erwarteter eingerückter Block")

        Beachten Sie, dass Einrückung nur nach Anweisungen verwendet wird, die mit enden: enden, danach muss das Einzugsformat wieder zum vorherigen Einzugsformat zurückgesetzt werden. Der Fehler tritt in einem Code wie diesem auf:

drucken ("Hallo!")
    druck("Howdy!")
Oder:
wenn Spam == 42:
    drucken ("Hallo!")
  druck("Howdy!")
Oder:
wenn Spam == 42:
drucken ("Hallo!")

4) Vergessen, len() in der for-Schleifen-Anweisung aufzurufen (was zu "TypeError: "list"-Objekt führt, das nicht als Ganzzahl interpretiert werden kann")

Normalerweise möchte man über eine Liste oder ein String-Element durch einen Index iterieren, was das Aufrufen der Range()-Funktion erfordert. Denken Sie daran, den Len-Wert zurückzugeben, anstatt diese Liste zurückzugeben.

        Der Fehler tritt in einem Code wie diesem auf:

spam = ["Katze", "Hund", "Maus"]
Für I in Reichweite (Spam):
    Druck(Spam)

5) Versuche, den Wert der Zeichenkette zu ändern (was zu "TypeError: "str"-Objekt unterstützt keine Item-Zuweisung führt)

        String ist ein unveränderlicher Datentyp, und der Fehler tritt in Code wie diesem auf:

spam = "Ich habe eine Katze als Haustier."
spam[13] = "r"
Druck(Spam)

Und du willst tatsächlich Folgendes tun:

spam = "Ich habe eine Katze als Haustier."
spam = spam[:13] + "r" + spam[14:]
Druck(Spam)

6) Versuche, nicht-String-Werte mit Strings zu verknüpfen (was zu "TypeError: Kann "int"-Objekt nicht implizit in str konvertieren")

        Der Fehler tritt in einem Code wie diesem auf:

numEggs = 12
druck("Ich habe " + NumEggs + " Eier.")

Und du willst tatsächlich Folgendes tun:

numEggs = 12
druck("Ich habe " + str(numEggs) + " Eier.")
Oder:
numEggs = 12
druck("Ich habe %s Eier." % (numEggs))

7) Vergessen, Anführungszeichen am Anfang und Ende der Zeichenkette zu setzen (was zu "SyntaxError: EOL beim Scannen des Stringliterals" führt)

        Der Fehler tritt in einem Code wie diesem auf:

druck(Hallo!")
Oder:
druck("Hallo!)
Oder:
myName = "Al"
druck("Mein Name ist " + meinName + . Wie geht es dir?")

8) Rechtschreibfehler von Variablen- oder Funktionsnamen (was zu "NameError: name "fooba" ist nicht definiert)

        Der Fehler tritt in einem Code wie diesem auf:

foobar = "Al"
druck("Mein Name ist " + fooba)
Oder:
spam = ruond(4.2)
Oder:
spam = Runde(4.2)

9) Falschschreibweise der Methodennamen (was zu "AttributeError: "str" Objekt hat kein Attribut "lowerr") führt.

        Der Fehler tritt in einem Code wie diesem auf:

spam = "DAS IST IN KLEINBUCHSTABEN."
spam = spam.lowerr()

10) Referenzen überschreiten den maximalen Listenindex (was zu "IndexError: List Index out of range" führt)

        Der Fehler tritt in einem Code wie diesem auf:

spam = ["Katze", "Hund", "Maus"]
druck(spam[6])

11) Verwendung eines Wörterbuchschlüsselwerts, der nicht existiert (was zu "KeyError: 'spam'" führt)

        Der Fehler tritt in einem Code wie diesem auf:

spam = {"cat": "Zophie", "dog": "Basil", "mouse": "Whiskers"}
druck("Der Name meines Haustierzebras ist " + spam["zebra"])

12) Versuch, das Python-Schlüsselwort als Variablennamen zu verwenden (was zu "SyntaxError: ungültige Syntax" führt)

        Python-Schlüssel kann nicht als Variablenname verwendet werden, der Fehler tritt in Code wie diesem auf:

Klasse = "Algebra"

Python3-Schlüsselwörter sind: und, as, assert, break, class, continue, def, del, elif, else, except, False, endly, for, from, global, if, import, in, is, Lambda, None, nonlocal, or, pass, raise, return, Stimmt, versuch, während, mit, ergeben


13) Verwendung von Value-Added-Operatoren in einer definierten neuen Variablen (was zu "NameError: name "foobar" is not defined) führt)

        Verwenden Sie bei der Deklaration von Variablen keine 0- oder Nullzeichenketten als Anfangswerte, sodass ein Satzspam += 1 mit dem selbstinkrementierenden Operator gleich Spam = Spam + 1 ist, was bedeutet, dass Spam einen gültigen Anfangswert angeben muss.

        Der Fehler tritt in einem Code wie diesem auf:

spam = 0
spam += 42
Eier += 42

14) Lokale Variablen in Funktionen verwenden, bevor lokale Variablen definiert werden (in diesem Fall gibt es eine globale Variable mit demselben Namen wie die lokale Variable) (was zu "UnboundLocalError: lokale Variable "foobar" vor der Vergabe referenziert wird)

        Es ist kompliziert, eine lokale Variable in einer Funktion mit demselben Namen wie eine globale Variable zu verwenden, und die Nutzungsregeln lauten: Wenn in einer Funktion etwas definiert ist, wenn es nur in der Funktion verwendet wird, ist es lokal, und umgekehrt.

        Das bedeutet, dass man sie nicht als globale Variable in einer Funktion verwenden kann, bevor du sie definiert hast.

        Der Fehler tritt in einem Code wie diesem auf:

someVar = 42
def myFunction():
    print(someVar)
    someVar = 100
myFunction()

15) Versuch, eine ganzzahlige Liste mit Range() zu erstellen (was zu "TypeError: "range"-Objekt unterstützt keine Item-Zuweisung führt)

        Manchmal möchte man eine geordnete Liste von ganzen Zahlen erhalten, daher scheint range() eine gute Möglichkeit zu sein, diese Liste zu erstellen. Du musst jedoch bedenken, dass Range() ein "Range-Objekt" zurückgibt und nicht den tatsächlichen Listenwert.

        Der Fehler tritt in einem Code wie diesem auf:

spam = Reichweite(10)
spam[4] = -1

Vielleicht ist das genau das, was du machen möchtest:

spam = liste(bereich(10))
spam[4] = -1
(Hinweis: spam = range(10) funktioniert in Python 2, weil in Python 2 range() einen Listenwert zurückgibt, aber in Python 3 wird der obige Fehler erzeugt.)

16) Nice in ++ oder -- selbstinkrementierender Operator. (Resultierend in "SyntaxError: ungültige Syntax")

        Wenn du an andere Sprachen wie C++, Java, PHP usw. gewöhnt bist, solltest du versuchen, ++ zu verwenden oder – eine Variable inkremenzieren und subtrahieren. In Python gibt es keinen solchen Operator.

        Der Fehler tritt in einem Code wie diesem auf:

spam = 1
spam++

Vielleicht willst du genau das tun:

spam = 1
spam += 1

17) Vergessen, den Selbstparameter zum ersten Argument der Methode hinzuzufügen (was zu "TypeError: myMethod() takes no arguments (1 given)" führte).

        Der Fehler tritt in einem Code wie diesem auf:

Klasse Foo():
    def myMethod():
        drucken ("Hallo!")
a = Foo()
a.myMethod()





Vorhergehend:WLAN-Wireless-Knacksoftware + Tutorial (Wassertropfen)
Nächster:【iOS Development Series Tutorial im Sommer veröffentlicht】Quellcode des IOS-Projekts
Veröffentlicht am 05.12.2015 13:34:16 |
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com