Wo ist mein Fehler

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
nikolasdarkatos
User
Beiträge: 1
Registriert: Sonntag 11. November 2018, 11:55

Sonntag 11. November 2018, 12:08

Ich bin Anfänger in Sachen Programmieren.
Ich wäre euch sehr dankbar wenn mir jemand sagen könnte wo bei mir der Fehler liegt.
Hier ist der Code:

print("Wer sollte 2020 US Präsident werden?")
name = input()
if name == "Donald Trump":
print("Schlechte Wahl, ist ein Arschloch!")
else:
print("Gute Wahl")
print("Wie alt bist du?")

age = input()
if age < 18:
print("Du darfst nicht Wählen")
elif age >= 18:
print("Du darfst Wählen")


Nach der Eingabe des Alters kommt folgende Fehlermeldung:

Traceback (most recent call last):
File "C:\Users\Dominik\Documents\python\if else elif Donald Trump.py", line 10, in <module>
if age < 18:
TypeError: '<' not supported between instances of 'str' and 'int'

Danke im voraus

Gruß

Dominik
Sirius3
User
Beiträge: 8805
Registriert: Sonntag 21. Oktober 2012, 17:20

Sonntag 11. November 2018, 14:59

Wo bei Dir der Fehler liegt, kann ich nicht sagen, weil ich Dich nicht kenne.
Der Fehler ist, dass man gar nicht gefragt wird, ob man US-Bürger ist, und andernfalls gar nicht wählen darf.
Der Programmierfehler liegt in Zeile 10, was auch schon im Traceback steht.
Wenn Du wissen willst, was der Fehler ist, dann steht das auch schon im Traceback: Strings und Integers kann man nicht miteinander vergleichen. Ist 17 größer als Hase?
Wenn Du wissen willst, wie man den Fehler behebt: Wandle den String in eine Zahl um.
Benutzeravatar
ThomasL
User
Beiträge: 422
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Sonntag 11. November 2018, 15:45

oder alternativ kannst du auch die Zahl in einen String umwandeln
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
Benutzeravatar
__blackjack__
User
Beiträge: 1590
Registriert: Samstag 2. Juni 2018, 10:21

Sonntag 11. November 2018, 15:51

@ThomasL: Nicht wenn das Programm korrekt funktionieren soll.

Edit: Ergänzend zu Sirius3: Eine Abfrage ob man als Wähler registriert ist, fehlt noch. Und vielleicht auch ob es sich aufgrund von „gerrymandering“ überhaupt lohnt zu wählen. ;-)

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Benutzeravatar
ThomasL
User
Beiträge: 422
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Sonntag 11. November 2018, 17:06

__blackjack__ hat geschrieben:
Sonntag 11. November 2018, 15:51
@ThomasL: Nicht wenn das Programm korrekt funktionieren soll.
Jo, wenn man einen Gedanken einfach so raus haut ohne weiter drüber nachzudenken... peinlich :oops:
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
Benutzeravatar
__blackjack__
User
Beiträge: 1590
Registriert: Samstag 2. Juni 2018, 10:21

Sonntag 11. November 2018, 17:35

@ThomasL: Wobei so ein Fehler den Trump erklären könnte: Ich kann mir jedenfalls eher vorstellen das den 2-jährige gewählt haben als tatsächlich volljährige Personen. :-D

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Antworten