Eines der Dinge, auf die Sie beim ** Programmieren ** immer stoßen werden, ist ** Fehler **. Als ich das Programm ausführte, das ich so hart geschrieben habe, bekam ich einen langen Satz auf Englisch, den ich nicht verstand! Ich denke, dass viele Leute frustriert sind, weil dieser Fehler nicht behoben werden kann. In diesem Artikel werde ich Ihnen die Ursachen von Fehlern in ** Python ** und deren Behebung erläutern.
** Wenn es keine Klammern gibt ** ()
oder Sie vergessen, sie zu schließen,
SyntaxError: unexpected EOF while parsing
Ich bekomme den Fehler.
hello_world1.py
print("Hello, world!"
# SyntaxError: unexpected EOF while parsing
In diesem Code habe ich vergessen, die Klammern zu schließen, daher erhalte ich die Fehlermeldung "** Es gibt ein unerwartetes Ende des Satzes **". Schließen Sie die Klammern, um den Fehler zu beheben.
hello_world2.py
print("Hello, world!")
# Hello, world!
Wenn ** Code in voller Breite ** im Code gemischt ist,
SyntaxError: invalid character in identifier
Ich bekomme den Fehler.
circle1.py
r = 2
pi = 3.14
# ^Es ist schwer zu verstehen, aber hier gibt es einen Raum voller Breite(Rote Unterstreichung wird angezeigt)
print(r ** 2 * 3.14)
# SyntaxError: invalid character in identifier
Leerzeichen in voller Breite sind schwer zu finden, aber lassen Sie uns die Anzahl der Zeilen "line (number)", die im Fehler angezeigt werden, als Hinweis finden und korrigieren.
circle2.py
r = 2
pi = 3.14
print(r ** 2 * 3.14)
# 12.56
Wenn Sie vergessen, ** Doppelpunkt ** :
am Ende von Zeilen wie if
-Anweisung, for
-Anweisung, while
-Anweisung,
SyntaxError: invalid syntax
Ich bekomme den Fehler.
ten1.py
i = 10
if i == 10
print("Ich bin 10")
else
print("Ich bin nicht 10")
# SyntaxError: invalid syntax
Die Lösung besteht darin, am Ende jedes der Sätze "if" und "else" einen Doppelpunkt einzufügen.
ten2.py
i = 10
if i == 10:
print("Ich bin 10")
else:
print("Ich bin nicht 10")
#Ich bin 10
Wenn die aufgerufene Variable undefiniert oder falsch geschrieben ist,
** NameError: name'variable name 'ist nicht definiert
**
Ich bekomme den Fehler.
year1.py
year = 2020
print(Year)
print(month)
# NameError: name 'Year' is not defined
Achten Sie auf die Unterscheidung zwischen Klein- und Großbuchstaben. Da das Programm von oben ausgeführt wird, wird nicht erwähnt, dass die Variable "Monat" nicht definiert ist, dies verursacht jedoch auch einen Fehler.
year2.py
year = 2020
print(year)
# 2020
month = 3
print(month)
# 3
str ()
oder int ()
.Wenn Sie Berechnungen durchführen oder Zeichenfolgen mit "print ()" kombinieren oder Variablen zuweisen, können der Zeichenfolgentyp "str" und der numerische Typ "int" nicht gleichzeitig verwendet werden, und wenn Sie versuchen, sie zu verwenden
** TypeError: Typ 1'Objekt kann nicht implizit in (Typ 2) konvertiert werden
**
Ich bekomme den Fehler.
price1.py
price = 100
print("Dieses Produkt ist" + price + "Es ist ein Kreis.")
# TypeError: Can't convert 'int' object to str implicitly
Dem "Preis" wird der "int" -Typ "100" zugewiesen, daher kann er nicht mit dem "str" -Typ kombiniert werden. Verwenden Sie in diesem Fall die Funktion "str ()", um "price" in den Typ "str" umzuwandeln. Wenn Sie den Typ "str" in der numerischen Berechnung in den Typ "int" konvertieren möchten, verwenden Sie die Funktion "int ()".
price2.py
price = 100
print("Dieses Produkt ist" + str(price) + "Es ist ein Kreis.")
#Dieses Produkt ist 100 Yen.
Gleiches gilt für die Argumente anderer Funktionen wie "len ()".
Wenn der Einzug einen Fehler enthält,
IndentationError: unindent does not match any outer indentation level
Ich bekomme den Fehler.
Es gibt nur eine Problemumgehung für diesen Fehler. "** Überprüfen Sie den Einzug **". Überprüfen Sie, ob die Tabulatortaste und zwei Leerzeichen mit halber Breite gemischt sind.
nine1.py
number = 99999
if number % 9 == 0:
print("Zahl ist ein Vielfaches von 9.")
else:
print("Zahl ist nicht durch 9 teilbar.")
# ^^Hier gibt es zwei Räume mit halber Breite.
# IndentationError: unindent does not match any outer indentation level
Stellen Sie sicher, dass Sie einen Einzug haben. Lassen Sie uns auch "else" löschen.
nine2.py
number = 99999
if number % 9 == 0:
print("Zahl ist ein Vielfaches von 9.")
else:
print("Zahl ist nicht durch 9 teilbar.")
#Zahl ist ein Vielfaches von 9.
Wenn Sie ein Element von "list" oder "str" angeben, wenn Sie eine Indexnummer angeben, die nicht vorhanden ist
** IndexError: (Typ-) Index außerhalb des Bereichs
**
Ich bekomme den Fehler.
abc1.py
l = ["a","b","c"]
print(l[3])
# IndexError: list index out of range
Die Indexnummer des dritten Elements lautet "2" anstelle von "3". Beachten Sie, dass die Indexnummer des ersten Elements "0" ist. Das Element ganz rechts kann auch mit "-1" angegeben werden.
abc2.py
l = ["a","b","c"]
print(l[2])
# c
Wenn Sie ein Modul aufrufen, das nicht vorhanden ist (oder das durch from import
angegebene Objekt),
"ImportError: Kein Modul mit dem Namen" Specified Module "
Ich bekomme den Fehler.
math1.py
import maths
print(maths.sqrt(2))
# ImportError: No module named 'maths'
Das Modul "Mathematik" existiert nicht. Schreiben wir es als "Mathe" um.
math2.py
import math
print(math.sqrt(2))
# 1.4142135623730951
Als ich den "Fehlercode" in der "Python 3.8.2" -Umgebung ausführte,
ModuleNotFoundError: No module named 'maths'
Wird als Fehler angezeigt. Der obige Fehler wurde in "Python3.4.3" angezeigt, daher kann er je nach Version unterschiedlich sein, aber ich glaube nicht, dass es ein bestimmtes Problem gibt.
Recommended Posts