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