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))