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)