merkkijono = "xxx" + muuttuja
Em. koodinpätkä ei toimi, jos muuttujassa on tyhjä arvo.
Tulee virheilmoitus "cannot concatenate 'str' and 'nonetype' objects".
Mikä neuvoksi?
Koodi on vain esimerkki ongelmasta. Sijoitus pitää saada toimimaan ilman mitään esitarkastuksia ja oletusarvoja.
Pitäisikö tulokseksi siis tulla xxxnonetype tai xxxNull vai jotain muuta?
Merkkijono "xxx", jos muuttuja on null.
Tai
merkkijono = "xxx" + muuttuja + "yyy" # --> xxxyyy
Lisäys:
HOHHOIJJAA.
Ei auttanut kuin tehdä testi
if type (muuttuja) is types.NoneType: muuttuja = ""
minkä jälkeen
merkkijono = "xxx" + muuttuja + "yyy"
toimii.
Det är python, sanois ruotsalainen.
Mod. lisäsi kooditagit!
Hienon tarkistuksesi voisi kirjoittaa selvemminkin:
if muuttuja is None: muuttuja = ""
Myös yhden rivin ratkaisu on mahdollinen rakenteella A if ehto else B.
tulos = "abc" + (muuttuja if muuttuja is not None else "") + "def"
En ymmärrä, mitä tarkoitat sanoessasi "ilman mitään esitarkastuksia ja oletusarvoja"; eikö tässä väkisin ole sellainen omatekoinen oletusarvo, että None on ""?
Joo, "" lienee siis oletusarvo.
Esitarkastuksilla tarkoitin hirveätä määrää koodia, jossa käydään kaikki muuttuja läpi ja tutkitaan, ovatko ne nulleja.
Kiitokset.
Aihe on jo aika vanha, joten et voi enää vastata siihen.