Für diejenigen, die gerade erst mit Pythonista beginnen, werden sie beim Ausführen des Codes während des Lernprozesses mehr oder weniger auf einige Fehler stoßen, was zunächst schwierig erscheinen kann. Wenn sich die Menge an Code ansammelt, macht Übung den Meister und Sie können das ursprüngliche Problem schnell lokalisieren, wenn Laufzeitfehler auftreten. Hier sind einige 17 häufige Fehler. Wenn der von Ihnen geschriebene Code diese Fehler nicht aufweist, werden Ihre Python-Kenntnisse ein höheres Niveau erreichen. Mit anderen Worten: Wenn Sie ein qualifizierter Python-Entwickler werden, sind Sie möglicherweise nicht in der Lage, Fehler wie „kann nicht einmal schreiben“ zu machen.
Kostenlose Lernempfehlung: Python-Video-Tutorial
1,
Vergessen, :
am Ende von if, for, def, elif, else, class und anderen Anweisungen hinzuzufügen, führt zu „SyntaxError: ungültige Syntax“ wie folgt:
if spam == 42 print('Hello!')
2,
Die Verwendung von = anstelle von ==
führt auch zu „SyntaxError: ungültige Syntax“
= ist ein Zuweisungsoperator und == ist eine Gleichheitsvergleichsoperation . Dieser Fehler tritt im folgenden Code auf:
if spam = 42: print('Hello!')
3,
Eine falsche Verwendung der Einrückung
führt zu „IndentationError: unerwarteter Einzug“, „IndentationError: unindent entspricht keiner äußeren Einrückungsebene“ und „Einrückungsfehler: erwartet Eingerückter Block“
Denken Sie daran, dass die Einrückungserhöhung erst nach der Anweisung verwendet wird, die mit: endet, und dann auf das vorherige Einrückungsformat zurückgesetzt werden muss. Dieser Fehler tritt im folgenden Code auf:
print('Hello!') print('Howdy!')
oder:
if spam == 42: print('Hello!') print('Howdy!')
4,
Das Vergessen, len() in der for-Schleifenanweisung aufzurufen, führt zu „TypeError: ‚list‘-Objekt kann nicht als Ganzzahl interpretiert werden „
Normalerweise möchten Sie die Elemente einer Liste oder Zeichenfolge nach Index iterieren, was den Aufruf der Funktion range() erfordert. Denken Sie daran, den len-Wert anstelle der Liste zurückzugeben.
Dieser Fehler tritt im folgenden Code auf:
spam = ['cat', 'dog', 'mouse'] for i in range(spam): print(spam[i])
Der Versuch, den Wert der Zeichenfolge
zu ändern, führt zu „TypeError: 'str'-Objekt unterstützt keine Elementzuweisung“
String ist ein unveränderlicher Datenwert Geben Sie ein, dieser Fehler tritt im folgenden Code auf:
spam = 'I have a pet cat.' spam[13] = 'r' print(spam)
Der richtige Ansatz ist:
spam = 'I have a pet cat.' spam = spam[:13] + 'r' + spam[14:] print(spam)
Der Versuch, einen Nicht-String-Wert mit einem String
zu verketten, führt zu „TypeError: Kann nicht konvertiert werden“ int' object to str implicitly"
Dieser Fehler tritt im folgenden Code auf:
numEggs = 12 print('I have ' + numEggs + ' eggs.')
Der richtige Ansatz ist:
numEggs = 12 print('I have ' + str(numEggs) + ' eggs.') numEggs = 12 print('I have %s eggs.' % (numEggs))
Das Vergessen, am Anfang und Ende der Zeichenfolge Anführungszeichen hinzuzufügen
führt zu „SyntaxError: EOL while scanning string literal“
Dieser Fehler tritt im folgenden Code auf:
print(Hello!') print('Hello!) myName = 'Al' print('My name is ' + myName + . How are you?')
Der Variablen- oder Funktionsname ist falsch geschrieben
was zu „NameError: name 'fooba' is not definiert "
Dieser Fehler tritt im folgenden Code auf:
foobar = 'Al' print('My name is ' + fooba) spam = ruond(4.2) spam = Round(4.2)
Der Methodenname ist falsch geschrieben
, was zu „AttributeError: 'str' object has no attribute 'lowerr'" führt.
Dieser Fehler tritt in auf folgender Code:
spam = 'THIS IS IN LOWERCASE.' spam = spam.lowerr()
Referenzen überschreiten den maximalen Listenindex
führt zu „IndexError: Listenindex außerhalb des gültigen Bereichs“
Dieser Fehler tritt im folgenden Code auf:
spam = ['cat', 'dog', 'mouse'] print(spam[6])
Using Ein nicht vorhandener Wörterbuchschlüsselwert
führt zu „KeyError: 'spam'“
Dieser Fehler tritt im folgenden Code auf:
spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'} print('The name of my pet zebra is ' + spam['zebra'])
Der Versuch, ein Python-Schlüsselwort als Variablennamen zu verwenden
Ergebnisse in „SyntaxError: invalid syntax“
Python-Schlüssel kann nicht als Variablenname verwendet werden, dieser Fehler tritt im folgenden Code auf:
class = 'algebra' Python3的关键字有:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
Die Verwendung des Inkrementoperators
in einer neuen Variablendefinition führt zu „ NameError: Name 'foobar' ist nicht definiert"
Verwenden Sie keine 0- oder Nullzeichen, wenn Sie Variablen String als Anfangswert deklarieren, sodass der Satz spam += 1 unter Verwendung des Inkrementoperators gleich spam = spam + 1 ist bedeutet, dass Spam einen gültigen Anfangswert angeben muss.
Dieser Fehler tritt im folgenden Code auf:
spam = 0 spam += 42 eggs += 42
Verwendung lokaler Variablen in einer Funktion vor der Definition lokaler Variablen (zu diesem Zeitpunkt gibt es eine globale Variable mit demselben Namen wie die lokale Variable)
Ergebnis in „UnboundLocalError: Auf die lokale Variable ‚foobar‘ wird vor der Zuweisung verwiesen“
Es ist sehr kompliziert, wenn eine lokale Variable in einer Funktion verwendet wird und gleichzeitig eine globale Variable mit demselben Namen vorhanden ist. Die Verwendungsregel lautet: Wenn überhaupt in der Funktion definiert, wenn sie nur in der Funktion verwendet wird, handelt es sich um eine lokale Variable, andernfalls handelt es sich um eine globale Variable.
Das bedeutet, dass Sie es nicht als globale Variable in einer Funktion verwenden können, bevor Sie es definiert haben.
Der Fehler tritt in Code auf wie:
someVar = 42 def myFunction(): print(someVar) someVar = 100 myFunction()
Der Versuch, mit range() eine Liste von Ganzzahlen zu erstellen
führt zu „TypeError: 'range'-Objekt unterstützt keine Elementzuweisung“
Manchmal auch Ich möchte eine geordnete Liste von Ganzzahlen erhalten, daher scheint range() eine gute Möglichkeit zu sein, diese Liste zu generieren. Sie müssen jedoch bedenken, dass range() ein „Range-Objekt“ zurückgibt, nicht den tatsächlichen Listenwert.
Dieser Fehler tritt im folgenden Code auf:
spam = range(10) spam[4] = -1 正确写法: spam = list(range(10)) spam[4] = -1
(注意:在 Python 2 中 spam = range(10) 是能行的,因为在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就会产生以上错误)
16、
不存在 ++ 或者 -- 自增自减操作符。
导致“SyntaxError: invalid syntax”
如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。
该错误发生在如下代码中:
spam = 1spam++ 正确写法: spam = 1spam += 1
17、
忘记为方法的第一个参数添加self参数
导致“TypeError: myMethod() takes no arguments (1 given)”
该错误发生在如下代码中:
class Foo(): def myMethod(): print('Hello!') a = Foo() a.myMethod()
相关免费学习推荐:python教程(视频)
Das obige ist der detaillierte Inhalt vonSchauen Sie sich einige Fehler an, die selbst Python-Experten nicht schreiben können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!