Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
6.4 TypeError: can't convert 'NoneType' object to str implicitly
Veateade TypeError: can't convert 'NoneType' object to str implicitly tekib siis, kui funktsioonil puudub return
käsk. Sellisel juhul on selle funktsiooni väärtus Pythonis tühi (NoneType) ja seega ei ole võimalik funktsiooni ühendada sõnetüüpi väärtusega.
Tuleb jälgida, et funktsiooni puhul oleks olemas ka tagastuskäsk return
.
Näide 1:
def vali_toode(sisend): print("Tere!") sisend = input("Millist toodet soovite? ") print("Väljastan toote: " + vali_toode(sisend) + "!")
Veateade kuvatakse, sest funktsioon ilma return
käsuta on Pythoni jaoks tühi andmetüüp:
>>> %Run Test.py Millist toodet soovite? jahu Tere! Traceback (most recent call last): File "C:\Users\Kursus\Test.py", line 6, in <module> print("Väljastan toote: " + vali_toode(sisend) + "!") TypeError: Can't convert 'NoneType' object to str implicitly >>>
Võimalik parandus:
Funktsioonile tuleks lisada ka tagastuskäsk return
.
Näide parandatud programmist:
def vali_toode(sisend): print("Tere!") return sisend sisend = input("Millist toodet soovite? ") print("Väljastan toote: " + vali_toode(sisend) + "!")