Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.10 TypeError: 'float' object is not iterable
Veateade TypeError: 'float' object is not iterable tekib siis, kui for-tsükli koostamisel kasutatakse ujukomaarvu tüüpi muutujat tsükli pikkuse määramiseks.
Tuleb jälgida, et tsükli pikkuse määramisel kasutatakse Pythonis funtsiooni range(), mille sisendiks antakse täisarvu tüüpi muutuja
Näide 1:
number = 6
arv = float(input("Sisestage arv: "))
for loendur in arv:
    print("Arvu " + str(arv) + " astendamisel " + str(loendur) + "-ga saadud väärtus on: " + str(arv ** loendur))
Veateade kuvatakse, sest for-tsükli pikkuse määramisel on jäetud lisamata funktsioon range(), mis suudab tsüklit korrata etteantud täisarv kordi:
>>> %Run test.py
Sisestage arv: 5
Traceback (most recent call last):
  File "C:\Users\Kursus\Test.py", line 3, in <module>
    for loendur in arv:
TypeError: 'float' object is not iterable
>>> 
Võimalik parandus:
Pythonis on vajalik funktsiooni lisamine tsüklisammude kordamiseks.
Näide parandatud programmist:
number = 6
arv = float(input("Sisestage arv: "))
for loendur in range(number):
    print("Arvu " + str(arv) + " astendamisel " + str(loendur) + "-ga saadud väärtus on: " + str(arv ** loendur))