Fehler EOF While Parsing in Python beheben

Isaac Tony 8 April 2022
Fehler EOF While Parsing in Python beheben

SyntaxError: unerwartetes EOF beim Analysieren tritt auf, wenn ein Interpreter das Ende einer Datei erreicht, bevor er einen Codeblock ausführt.

Dies ist oft ein Zeichen dafür, dass ein Teil des Codes fehlt. Wir müssen den syntaktischen Fehler finden und beheben.

Moderne Python-Interpreter wie Pycharm würden oft den Codeabschnitt hervorheben, der korrigiert werden muss. Häufiger besteht die Behebung des Fehlers darin, den fehlenden Codeabschnitt hinzuzufügen.

Die Verwendung von for-Schleifen erfordert oft das Hinzufügen von Code im Code. Das Versäumnis, Code in den Body einzufügen, führt zum Fehler unexpected EOF while parsing.

for-Schleifen werden oft verwendet, um über einige Iterable zu iterieren; In manchen Szenarien kann es vorkommen, dass wir dem Hauptteil der for-Schleife keinen Code hinzufügen. Dies ist eines der Szenarien, die zu einem solchen Fehler führen.

names = ['Tesla', 'Lucid', 'Samsung']

for company in names:

Ausgabe:

File "<string>", line 14
    
    ^
SyntaxError: unexpected EOF while parsing

Gemäß der korrekten Python-Syntax erwartet der Compiler, dass nach der Einrückung Code ausgeführt wird.

Dieser neue Code im Einrückungsblock bildet einen Teil des Körpers der for-Schleife. Daher müssen wir sicherstellen, dass der Körper der Schleife Code enthält, um das unerwartete Ende der Datei abzuwenden und der korrekten Python-Syntax zu entsprechen.

Wir können diesen Fehler beheben, wie im folgenden Code gezeigt.

names = ["Tesla", "Lucid", "Samsung"]

for company in names:
    result = company.upper()
    print(result)

Ausgabe:

TESLA
LUCID
SAMSUNG

Dieser Fehler kann auch beim Arbeiten mit if-else-Anweisungen auftreten. if-Anweisungen werden verwendet, um einen Codeblock unter einer bestimmten Bedingung auszuführen; Der eingerückte Block in einer if-Anweisung bildet den Hauptteil aller if-Anweisungen.

Abgesehen davon, dass er als Trennzeichen und zum Definieren von Funktionen verwendet wird, kennzeichnet ein vollständiger Doppelpunkt den Beginn von Codeblöcken in if-Anweisungen. Wenn kein Code in den Block geschrieben wird, der dem vollständigen Doppelpunkt vorangeht, würde dies zu einer EOF-Datei beim Parsing von Fehlern führen.

Unten ist ein Beispiel, das zeigt, wie dieser Fehler zustande kommt.

company_name = "tesla"

if company_name.upper() == True:

Ausgabe:

File "<string>", line 4
    
    ^
SyntaxError: unexpected EOF while parsing

Dieser Fehler kann behoben werden, indem sichergestellt wird, dass die if-Anweisung Code in ihrem Hauptteil enthält, wie unten gezeigt.

company_name = "tesla"

if company_name.isupper() == True:
    print(company_name.lower())
else:
    print(company_name.upper())

Ausgabe:

TESLA

Der Interpreter wird ebenfalls den Fehler EOF while parsing auslösen, wenn kein Code in den Körper der else-Anweisung geschrieben wird, die unmittelbar auf eine if-Anweisung folgt. Dieser Fehler wird ausgegeben, obwohl der if-Anweisungsblock einen gültigen Code enthält.

Daher sollten beide Codeblöcke vollständig sein, um eine erfolgreiche if-else-Anweisung zu schreiben. Andernfalls erhalten wir den Fehler EOF while parsing.

number = input("Please Enter a number: ")

if number % 2 == 0:
    print("This is an even number:")
else:

Ausgabe:

File "<string>", line 7
    
    ^
SyntaxError: unexpected EOF while parsing

Wir müssen sicherstellen, dass der andere Teil einen vollständigen Körper hat, um diesen Fehler zu beheben. Einige if-Anweisungen erfordern keine else-Anweisungen; in einem solchen Fall brauchen wir überhaupt keine else-Anweisungen.

number = int(input("Please Enter a number: "))

if number % 2 == 0:
    print("This is a even number")
else:
    print("This is not an even number")

Ausgabe:

Please Enter a number: 23
This is not an even number

Dieser Fehler tritt auch auf, wenn der Rumpf der while-Schleife zu definiert ist. Ebenso kann der Fehler behoben werden, indem sichergestellt wird, dass der Körper der while-Schleife bereitgestellt wird.

i = 10
while i < 6:

Ausgabe:

File "<string>", line 3
    
    ^
SyntaxError: unexpected EOF while parsing

Der Fehler kann auch beim Arbeiten mit Funktionen auftreten, wenn der Rumpf der Funktion nicht bereitgestellt wird.

In großen Programmen mit mehreren Funktionen möchten wir vielleicht in Zukunft eine Funktion implementieren. Daher wäre es nicht unnötig, den Körper der Funktion sofort zu definieren.

Es kann auch der Fall sein, wenn man seine Funktionalität noch nicht entschieden hat. Die folgende Funktion soll die Summe zweier Zahlen berechnen.

Der Körper, der die Anweisungen enthält, die angeben, was die Funktion tun soll, wird jedoch nicht deklariert. Dies führt zu einem Fehler, wie unten gezeigt.

def add_numbers(num1, num2):

Ausgabe:

File "<string>", line 3
    
    ^
SyntaxError: unexpected EOF while parsing

Dieser Fehler kann behoben werden, indem die Anweisungen geschrieben werden, die die Funktion definieren, wie im folgenden Beispiel gezeigt.

def add_numbers(num1, num2):
    result = num1 + num2
    print(result)


add_numbers(23, 45)

Ausgabe:

68

Wenn wir nicht angeben möchten, was die Funktion implementiert, können wir auch das Schlüsselwort pass verwenden. Der Interpreter ignoriert die pass-Anweisung, also wird nichts ausgeführt.

Wir können diese Anweisung auch verwenden, um die Ausführung von Funktionen zu vermeiden, die wir nicht sofort implementieren möchten. Das Schlüsselwort pass kann verwendet werden, um den Fehler EOF while parsing abzuwenden, wie im folgenden Beispiel gezeigt.

def add_numbers(num1, num2):
    pass

Ausgabe:

Unerwartetes EOF While Parsing kann auch aus fehlenden Klammern in Funktionen oder Anweisungen resultieren, die Klammern verwenden.

Die Druckfunktion und viele andere eingebaute Python-Funktionen werden mit Klammern ausgeführt. Beim Schreiben von Code in Eile können solche kleinen Syntaxfehler oft unwissentlich gemacht werden; dies führt zum Fehler EOF while parsing wie im Beispiel unten gezeigt.

def say_hello():
    print("Hello user welcome on board"

Ausgabe:

File "<string>", line 2
    
    ^
SyntaxError: unexpected EOF while parsing

Dieser Fehler kann nur behoben werden, indem sichergestellt wird, dass keine Klammern offen bleiben.

Moderne Dolmetscher würden Sie oft darüber informieren, dass ein Fehler vorliegt, bevor Sie mit der nächsten Zeile fortfahren. Dieser Fehler erstreckt sich auch auf selbstdefinierte Funktionen.

Das unsachgemäße Aufrufen von Funktionen würde ebenfalls zu diesem Fehler führen. Der folgende Code zeigt, dass eine unsachgemäße Art des Aufrufs einer selbstdefinierten Funktion ein Versäumnis darstellt, beide Klammern zu verwenden.

def add_sum(num1, num2):
    print(num1 + num2)


add_sum(23, 78

Ausgabe:

  File "e:\CodeBerry\eoferroinpython.py", line 8
    
    ^
SyntaxError: unexpected EOF while parsing

Die Python-Tests try...except testen auf das Vorhandensein von Fehlern in unserem Code, die dazu führen könnten, dass unsere Programme anhalten bzw. damit umgehen.

Der try-Block kann nicht als eigenständige Methode fungieren und sollte immer einen except-Block begleiten. Die Verwendung des try-Blocks zum Testen eines Stücks ohne Angabe von Code im except-Block führt zu SyntaxError: unexpected EOF while parsing, wie unten gezeigt.

number = int(input("Please enter a number:"))


def add_numbers(number):
    try:
        print(number + 2)

    except ValueError:

Ausgabe:

File "<string>", line 7
    
    ^
SyntaxError: unexpected EOF while parsing
Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Verwandter Artikel - Python Error