Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.8 TypeError: unorderable types: str() > int()
Veateade TypeError: unorderable types: str() > int() tekib siis, kui üritatakse Pythonis võrrelda sõnetüüpi väärtust ja täisarvu tüüpi väärtust.
Tuleb jälgida, et arvuliste väärtuste võrdluse puhul ei kasutataks sõnetüüpi väärtusi.
Näide 1:
tunnid = input("Sisesta nädala tundide arv: ")
tasu = input("sisesta tunnitasu: ")
palk = int(tunnid) * int(tasu)
if tunnid > 40:
     lisa = tunnid - 40
     lisa = int(lisa) * tasu * 0.5
     palk = palk + lisa
print(int(palk))
Veateade kuvatakse, sest funktsioon input tagastab sõnetüüpi väärtuse ja seda üritatakse võrrelda täisarvuga:
>>> %Run Test.py
Sisesta nädala tundide arv: 40
sisesta tunnitasu: 5
Traceback (most recent call last):
  File "C:\Users\Kursus\Test.py", line 5, in <module>
    if tunnid > 40:
TypeError: unorderable types: str() > int()
>>> 
Võimalik parandus:
Muutuja tunnid tuleks teisendada täisarvu tüüpi muutujaks.
Näide parandatud programmist:
tunnid = int(input("Sisesta nädala tundide arv: "))
tasu = int(input("sisesta tunnitasu: "))
palk = tunnid * tasu
if tunnid > 40:
     lisa = tunnid - 40
     lisa = int(lisa) * tasu * 0.5
     palk = palk + lisa
print(int(palk))