Seite 1 von 1

TypeError: unorderable types: str() <= int()

Verfasst: Samstag 24. Februar 2018, 14:10
von michi-monster
So wie ich den Fehler verstehe,, meckert er, da kein Typ der Variablen erkannt werden kann (?)
Ich hab das Allerdings ganz simple aus nem Buch abgeschrieben. Kann / muss ich irgenwo / irgendwie den Typ angeben oder weshalb meckert er? Ich habe zum Test einfach nen String statt einer Zahl eigeben. Dennoch kommt der Fehler...

Code: Alles auswählen

alter = input("Alter: ")
if (alter <= 12) or (alter >= 65):
    eintritt = 3
else:
    eintritt = 5
print("Der Eintrittspreis beträgt für Sie", eintritt, "Euro.")

Code: Alles auswählen

fridolin@localhost ~/python $ python3 kapitel5-1.py 
Alter: 12
Traceback (most recent call last):
  File "kapitel5-1.py", line 2, in <module>
    if (alter <= 12) or (alter >= 65):
TypeError: unorderable types: str() <= int()

Re: TypeError: unorderable types: str() <= int()

Verfasst: Samstag 24. Februar 2018, 14:24
von __deets__
Du benutzt Python 3. Das Buch Python 2. Das ist ein Unterschied. input in 3 ist wie raw_input in 2: es konvertiert nicht. Was auch besser so ist. Damit ist deine Eingabe “12”, also ein STRING. Du vergleichst mit einer ZAHL, und das geht halt nicht.

Wandle die Eingabe vorher mit int(Eingabe) in eine Zahl um, dann geht’s.

Re: TypeError: unorderable types: str() <= int()

Verfasst: Samstag 24. Februar 2018, 14:55
von michi-monster
ok , danke. Ich habe jetzt einfach int('alter") hinzugefügt. Jetzt meckert er immernoch. Ich habe aber keine andere Formatierung gefudnden. Wie muss ich das angeben? :-(

Code: Alles auswählen

alter=int('')
alter = input("Alter: ")

if (alter <= 12) or (alter >= 65):
    eintritt = 3
else:
    eintritt = 5
print("Der Eintrittspreis beträgt für Sie", eintritt, "Euro.")

fridolin@localhost ~/python $ python3 kapitel5-1.py
Traceback (most recent call last):
  File "kapitel5-1.py", line 1, in <module>
    alter=int('')
ValueError: invalid literal for int() with base 10: ''


Re: TypeError: unorderable types: str() <= int()

Verfasst: Samstag 24. Februar 2018, 15:06
von __deets__
Das gehört ja auch NACH die Eingabeaufforderung. Anweisungen werden doch der Reihe nach ausgeführt. Und natürlich musst du auch den String der eingegeben wurde wandeln, nicht irgendeine Konstante. Sonst braucht man ja nichts abfragen, wenn die Werte fest sind.