Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.1 TypeError: 'int' object is not subscriptable
Veateade TypeError: 'int' object is not subscriptable tekib siis, kui täisarvu tüüpi muutuja korral kasutatakse indeksit.
Tuleb jälgida, et indeksit saab kasutada järjendite ja sõnede puhul, kuid mitte täisarvu tüüpi muutujate puhul.
Näide 1:
käärikul = [401, 604, 547] kohilas = [900, 0, 333] tulemus = 0 if tulemus[2] > tulemus[2]: tulemus = käärikul[2] else: tulemus = kohilas[2] print("Parim tulemus viimasel katsel oli " + str(tulemus))
Veateade kuvatakse, sest Python ei võimalda indeksiga viidata täisarvu tüüpi muutujale:
>>> %Run Test.py Traceback (most recent call last): File "C:\Users\Kursus\Test.py", line 5, in <module> if tulemus[2] > tulemus[2]: TypeError: 'int' object is not subscriptable >>>
Võimalik parandus:
Indeksiga tuleks viidata näiteks järjendi elemendile.
Näide parandatud programmist:
käärikul = [401, 604, 547] kohilas = [900, 0, 333] tulemus = 0 if käärikul[2] > kohilas[2]: tulemus = käärikul[2] else: tulemus = kohilas[2] print("Parim tulemus viimasel katsel oli " + str(tulemus))