Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung häufiger Fehler, die Anfänger beim Erlernen von Python machen

Zusammenfassung häufiger Fehler, die Anfänger beim Erlernen von Python machen

怪我咯
怪我咯Original
2017-04-06 11:48:141159Durchsuche

Ich habe kürzlich Python gelernt und jetzt habe ich einige häufige Fehler wie folgt zusammengefasst:

1) Ich habe vergessen, am Ende von if , elif , else zu setzen , for , while , class , def-Anweisung Hinzugefügt: (verursacht „SyntaxError: ungültige Syntax“) Dieser Fehler tritt in Code auf, der dem folgenden ähnelt:

if spam == 42 print('Hello!')

2) Verwenden Sie = anstelle von == (verursacht „SyntaxError : ungültige Syntax") = ist ein Zuweisungsoperator und == ist eine Gleichheitsvergleichsoperation. Dieser Fehler tritt im folgenden Code auf:

if spam = 42: print('Hello!')

3) Falsche Verwendung der Einrückung. (Ergibt „IndentationError: unerwarteter Einzug“, „IndentationError: unindent entspricht keiner äußeren Einrückungsebene“ und „IndentationError: erwarteter Einrückungsblock“). Denken Sie daran, dass die Einrückung nur nach Anweisungen zunimmt, die mit: enden, und anschließend wiederhergestellt werden muss vorheriges Einrückungsformat. Dieser Fehler tritt im folgenden Code auf:

print('Hello!') 
   print('Howdy!')

oder:

if spam == 42: 
print('Hello!') 
print('Howdy!')

oder:

 if spam == 42: 
print('Hello!')

4) Ich habe vergessen, len( in der for-Schleife aufzurufen Anweisung) (verursacht „TypeError: ‚list‘-Objekt kann nicht als Ganzzahl interpretiert werden“) Normalerweise möchten Sie die Elemente einer Liste oder eines Strings nach Index durchlaufen, was den Aufruf der Funktion „range()“ erfordert. Denken Sie daran, den len-Wert anstelle der Liste zurückzugeben. Der Fehler tritt im folgenden Code auf:

spam = ['cat', 'dog', 'mouse'] 
for i in range(spam): 
     print(spam[i])

5) Versuchen Sie, den Wert von string zu ändern (was zu „TypeError: ‚str‘-Objekt unterstützt keine Elementzuweisung“ führt). string ist ein unveränderlicher Datentyp. Der Fehler tritt in Code wie:

spam = 'I have a pet cat.' 
spam[13] = 'r' print(spam)

auf, wenn Sie dies tatsächlich tun möchten:

spam = 'I have a pet cat.' 
spam = spam[:13] + 'r' + spam[14:] print(spam)

6) Versuchen Sie, einen Wert, der kein String ist, mit einem String zu verketten (was zu „TypeError : 'int'-Objekt kann nicht implizit in str konvertiert werden") Dieser Fehler tritt in Code wie:

numEggs = 12 print('I have ' + numEggs + ' eggs.')

auf, wenn Sie dies tatsächlich tun möchten:

numEggs = 12 print('I have ' + str(numEggs) + ' eggs.')

oder:

 numEggs = 12 print('I have %s eggs.' % (numEggs))

7) Es wurde vergessen, Anführungszeichen am Anfang und Ende der Zeichenfolge einzufügen (was zu „SyntaxError: EOL während des Scannens des Zeichenfolgenliterals“ führte). Dieser Fehler tritt im folgenden Code auf:

print(Hello!') 或者: print('Hello!)

oder:

myName = 'Al' print('My name is ' + myName + . How are you?')

8) Rechtschreibfehler bei Variablen- oder Funktionsnamen (was zu „NameError: Name ‚fooba‘ ist nicht definiert“) führt. Dieser Fehler tritt im folgenden Code auf:

foobar = 'Al' print('My name is ' + fooba)
 或者:
spam = ruond(4.2) 
或者: 
spam = Round(4.2)

9) Methodenname Tippfehler außerhalb des gültigen Bereichs") Dieser Fehler tritt im folgenden Code auf:

spam = 'THIS IS IN LOWERCASE.' 
spam = spam.lowerr()

11) Verwendung eines nicht vorhandenen Wörterbuchschlüsselwerts (was zu „KeyError: 'spam'" führt) ") Dieser Fehler tritt im folgenden Code auf:

spam = ['cat', 'dog', 'mouse'] 
print(spam[6])

12) Beim Versuch, Python-Schlüsselwörter als Variablennamen zu verwenden (was zu „SyntaxError: invalid syntax“ führt) können Python-Schlüsselwörter nicht als Variablennamen verwendet werden, der Fehler Kommt in Code vor wie:

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}
print('The name of my pet zebra is ' + spam['zebra'])

Die Schlüsselwörter von Python3 sind: and, as, Assert, Break, Class, Continue, Def, Del, Elif, else, Except, False, Final, For, From, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield

class = 'algebra'
13) Verwendung des Inkrementoperators in einem neuen Variablendefinition (verursacht „NameError: Name ‚foobar‘ ist nicht definiert“). Verwenden Sie beim Deklarieren einer Variablen nicht 0 oder eine leere Zeichenfolge. Auf diese Weise ist der Satz spam += 1 mit dem Inkrementoperator gleich spam = spam + 1, was bedeutet, dass spam einen gültigen Anfangswert angeben muss. Dieser Fehler tritt im folgenden Code auf:

14) Verwenden Sie lokale Variablen in Funktionen, bevor Sie lokale Variablen definieren (zu diesem Zeitpunkt gibt es eine globale Variable mit demselben Namen wie die lokale Variable) (was zu „ UnboundLocalError: Lokale Variable 'foobar', auf die vor der Zuweisung verwiesen wird") Es ist sehr kompliziert, eine lokale Variable in einer Funktion zu verwenden, wenn es eine globale Variable mit demselben Namen gibt. Als Faustregel gilt: Wenn in der Funktion etwas definiert ist, wenn Sie wird nur in der Funktion verwendet. Sie ist lokal, andernfalls handelt es sich um eine globale Variable. Das bedeutet, dass Sie sie nicht als globale Variable in einer Funktion verwenden können, bevor Sie sie definiert haben. Der Fehler tritt im folgenden Code auf:

spam = 0 
spam += 42 
eggs += 42

15) Es wird versucht, mit range() eine Liste von Ganzzahlen zu erstellen (was zu „TypeError: ‚range‘-Objekt unterstützt keine Elementzuweisung“ führt). Manchmal kommt es vor Ich möchte eine Liste mit einer geordneten 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. Der Fehler tritt im folgenden Code auf:

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

Vielleicht möchten Sie Folgendes tun:

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

(Hinweis: In Python 2 funktioniert spam = range(10) Ja, weil range() in Python 2 einen Listenwert zurückgibt, aber in Python 3 der obige Fehler auftritt)

spam = list(range(10)) 
spam[4] = -1
16) Der Fehler liegt in den Inkrementierungs- und Dekrementierungsoperatoren ++ oder --. (Ergibt „SyntaxError: ungültige Syntax“) Wenn Sie an andere Sprachen wie C++, Java, PHP usw. gewöhnt sind, möchten Sie möglicherweise versuchen, eine Variable mit ++ oder -- zu erhöhen und zu dekrementieren. In Python gibt es keinen solchen Operator. Der Fehler tritt im folgenden Code auf:

Vielleicht möchten Sie Folgendes tun:

spam = 1 
spam += 1

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”) 该错误发生在如下代码中:

class Foo(): def myMethod(): 
       print('Hello!') a = Foo() a.myMethod()


 

Das obige ist der detaillierte Inhalt vonZusammenfassung häufiger Fehler, die Anfänger beim Erlernen von Python machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-Kodierung und UnicodeNächster Artikel:Python-Kodierung und Unicode