Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.6 TypeError: float() argument must be a string or a number, not 'list'
Veateade TypeError: float() argument must be a string or a number, not 'list' tekib siis, kui funktsiooni float
argumendiks antakse ette järjend, mis ei ole sobiv andmetüüp sellele funktsioonile. Sobivad on näiteks sõne või täisarv.
Tuleb jälgida, et järjendi puhul ei võimalda Python kasutada float
funktsiooni.
Näide 1:
arvud = [5, 33, 2.6, 18, 35, 105.55, 99.99] summa = 0 for arv in float(arvud): if arv > 38: summa += arv print(summa)
Veateade kuvatakse, sest float
funktsiooni argumendiks antakse järjend:
>>> %Run Test.py Traceback (most recent call last): File "C:\Users\Kursus\Test.py", line 4, in <module> for arv in float(arvud): TypeError: float() argument must be a string or a number, not 'list' >>>
Võimalik parandus:
Järjendi puhul tuleks eemaldada ujukomaarvuks tehtav teisendus.
Näide parandatud programmist:
arvud = [5, 33, 2.6, 18, 35, 105.55, 99.99] summa = 0 for arv in arvud: if arv > 38: summa += arv print(summa)