Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
4.1 NameError: name 'summa' is not defined
Veateade NameError: name 'summa' is not defined tekib siis, kui programmis kutsutakse välja muutujat või funktsiooni, mis ei ole eelnevalt defineeritud, on tehtud väljakutsumisel trükiviga või on kasutatud sama nime, mis programmil endal.
Tuleb jälgida, et muutuja oleks defineeritud enne, kui seda kasutatakse.
Näide 1:
arv1 = 5 arv2 = 3 print ("Summa on: " + str(summa)) summa = arv1 + arv2
Veateade kuvatakse, sest muutujat summa
tahetakse väljastada enne, kui see on defineeritud programmis:
>>> %Run Test.py Traceback (most recent call last): File "C:\Users\Kursus\Test.py", line 4, in <module> print ("Summa on: " + str(summa)) NameError: name 'summa' is not defined >>>
Võimalik parandus:
Muutuja tuleks defineerida, alles seejäral saab seda väljastada.
Näide parandatud programmist:
arv1 = 5 arv2 = 3 summa = arv1 + arv2 print ("Summa on: " + str(summa))
Tuleb jälgida, et muutuja väljastamisel ei oleks tehtud viga.
Näide 2:
arv1 = 5 arv2 = 3 kokku = arv1 + arv2 print ("Summa on: " + str(summa))
Veateade kuvatakse, sest väljastada tahetakse sellist muutujat, mis pole programmis eelnevalt defineeritud:
>>> %Run Test.py Traceback (most recent call last): File "C:\Users\Kursus\Test.py", line 5, in <module> print ("Summa on: " + str(summa)) NameError: name 'summa' is not defined >>>
Võimalik parandus:
Väljastavtava muutuja nimi tuleks muuta vastavalt programmis defineeritud muutuja nimele.
Näide parandatud programmist:
arv1 = 5 arv2 = 3 kokku = arv1 + arv2 print ("Summa on: " + str(kokku))