Fehler: SyntaxError: Non-UTF-8 code starting with '\xe4'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Baronheart
User
Beiträge: 4
Registriert: Montag 7. August 2023, 18:54

Guten Abend,
erstmal sorry für meine wahrscheinlich dumme Frage. Ich bin noch neu in dem Gebiet und bringe mir die Programmiersprache selber mit einem "Lernbuch" bei, getreu nach dem Motte jeder ist mal klein angefangen wurschtel ich mich durch.
Ich habe den Fehlercode schon durch die Suchmaschine gejagt aber leider bin ich durch die Antwort die ich dort fand nicht wirklich Klug geworden.

Ich habe folgendes Programm:
a = eval(input("Geben Sie bitte den Warenbestand ein: "))
if a >= 10 and a < 100:
print("Die Warenbestände liegen bei", a,"Artikeln.")
elif a >= 100:
print("Warnung: Keine Lagerkapazitäten mehr frei!")
elif a > 0:
print("Nur noch ", a, "Artikel vorrätig. Bitte nachbestellen!")
elif a == 0:
print("Warnung: Artikel nicht mehr verfügbar!")
else:
print("Ungültige Eingabe!")


Und bei Ausführung kommt die Fehlermeldung: SyntaxError: Non-UTF-8 code starting with '\xe4'


Ich hoffe ihr könnt mir helfen...

Lg :)
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Hallo Baronheart,

willkommen im Forum.

Wann kommt die Fehlermeldung?
Wie lautet der komplette Traceback/Stacktrace (also der Hinweis, wo die Fehlermeldung auftritt)
Welche Python-Version verwendest du?

Bitte verwende kein "eval". Das ist an der Stelle die falsche Lösung. Wenn du eine Zeichenkette in eine Ganzzahl casten möchtest, dann verwende dafür int().
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Baronheart: .py-Dateien sind standardmäßig UTF8-kodiert. Deine Datei ist es offensichtlich nicht. Stelle Deinen Editor so ein, dass er die Dateien UTF8-kodierte speichert.

`eval` hat in einem ordentlichen Programm nichts zu suchen. Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht mal 6 und mal 4.
Strings baut man am besten mit f-Strings zusammen. Dann sind die Leerzeichen auch gut zu sehen.
Einbuchstabige Variablennamen sind schlecht, weil sie nichts aussagen.
Am besten sortiert man die Abfragen entweder auf- oder absteigend, dann ist klarer, dass man keinen Fall übersehen hat.

Code: Alles auswählen

warenbestand = int(input("Geben Sie bitte den Warenbestand ein: "))
if warenbestand >= 100:
    print("Warnung: Keine Lagerkapazitäten mehr frei!")
elif warenbestand >= 10:
    print(f"Die Warenbestände liegen bei {warenbestand} Artikeln.")
elif warenbestand > 0:
    print("Nur noch {warenbestand} Artikel vorrätig. Bitte nachbestellen!")
elif warenbestand == 0:
    print("Warnung: Artikel nicht mehr verfügbar!")
else:
    print("Ungültige Eingabe!")
Antworten