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:
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 4 5 6 7 8 9 10 |
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)) |