Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Nullin yhdistäminen merkkijonoon

Tepi_78 [04.12.2012 13:51:14]

#

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.

Grez [04.12.2012 14:02:35]

#

Pitäisikö tulokseksi siis tulla xxxnonetype tai xxxNull vai jotain muuta?

Tepi_78 [04.12.2012 14:07:15]

#

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!

Metabolix [04.12.2012 16:06:17]

#

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 ""?

Tepi_78 [05.12.2012 13:19:23]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta