Merkkijonomuuttuja, string
Numeroiden lisäksi ohjelmissa tarvitaan tekstitietoa kuten esimerkiksi nimiä ja erilaisia tunnuksia.
Näitä voidaan käsitellä kätevästi merkkijonojen avulla.
Merkkijono koostuu yhdestä tai useammasta peräkkäisestä merkistä.
Pythonissa ei eroteta toisistaan yksittäisiä merkkejä ja merkkijonoja.
Yksittäiset merkit esitetään aina yhden merkin mittaisina merkkijonoina.
Merkkijono esitetään puoli-, lainaus tai kolminkertaisten lainausmerkkien avulla.
Seuraavat kolme sijoituskäskyä tarkoittavat kaikki täysin samaa:
jono = ’raspberry’ - merkkijono puolilainausmerkkien, sitaatti, välissä
jono = "raspberry" - merkkijono lainausmerkkien välissä
jono = “””raspberry””” - merkkijono kolminkertaisten lainausmerkkien välissä
mallikoodi
Käytä koodipohjana edellistä ja lisää siihen kuvan mukaiset rivit.
Muista aluksi tallettaa uudella nimellä, Save as...
Tässä on uutta ainoastaan merkkijonomuuttuja, joka määritellään aivan samoin kuin lukumuuttuja,
eli annetaan muuttujalle nimi ja sijoitetaan sen arvoksi lainausmerkkien välissä oleva teksti eli merkkijono:
jono = “Raspin CPU on ARM”
Merkkimuuttuja luodaan kuten edellä esitettiin, mutta lainausmerkkien välissä on vain yksi merkki.
Talleta nimellä.
Aja ohjelma, F5.
Tuloksen pitäisi olla kuvan mukainen.
Ellei ole, korjaa virheet, Python näyttää missä on ensimmäinen “vääryys”.
Pythonissa ovat käytössä rajattoman laskenta-tarkkuuden kokonaisluvut.
Toisin sanoen, jos luku ei mahdu 32:een tai 64 bittiin,
Python tekee siitä automaattisesti long-tarkkuuden kokonaisluvun, jossa rajana on vain muistin koko.
Lainausmerkkien, quotes, käyttö merkkijonossa
Kuten kuvasta, koodista, näkyy, Pythonin käytössä on kolmenlaisia lainausmerkkejä.
’ single’
” double”
””” triple”””
Jono-tulostukset näyttävät aivan samanlaisilta, käytti noista lainausmerkeistä mitä tahansa.
Paitsi siis jono_4.
Siksi peruskäytössä suositellaan käytettäväksi yksinkertaista, single, puolilainausmerkkiä.
Syy: se on helpoin noista käyttää, ei tarvita shiftiä.
Kuten huomasit:
Vaikka Pythonin kannalta sitaatti- ja lainausmerkillä ei ole minkäänlaista eroa,
on tärkeää tietää etteivät ne toimi ristiin. Siis ei näin: ”raspi’
Rivi 16: Yksittäinen takakeno rivin päässä tarkoittaa sitä, että merkkijono jatkuu seuraavalla rivillä.
Jätä takakeno pois ja katso miten sitten tulostuu.
Lisää lainausmerkkien käytöstä.
Katso erikoisesti rivi 13,
takakeno ” Moi!-viestin molemmin puolin kertoo tulkille ettei näitä huomioida itse print-funktiossa.
Kokeile: muuta rivi 12 vaikka niin, että uloimmaiset singlet vaihdat tuplaksi, talleta ja aja.
Virheilmoitus kertoo miten kävi. Kokeile eri vaihtoehtoja.
Jos lisäämme yhden rivin, jossa on heittomerkki, käy näin.
Huomaa miten Thonny kertoo jo ennen ajoa,
että jotain käskyrivillä on väärin maalaamalla rivin lopun vaalean vihreäksi.
Tämä on sitä IDEn fiksuutta.
Nyt jo tiedätkin miten vika korjataan.
Puolipisteiden käytöstä
Puolipisteellä ;
erotetaan saman rivin komennot toisistaan.
Puolipiste kertoo tulkille että komento on loppunut ja seuraava alkaa.
Älä käytä ellei ihan pakko.
Parempi tapa on ottaa käyttöön periaate: Yksi rivi – yksi komento.
Se luo järjestystä työhömme.
Rivinvaihto
”keno än” eli n on erikoismerkki rivinvaihtoon. Kokeile komentoja:
print("RasPi onn mainion tietokone")
print("RasPi onnmainiontietokone")
print("RasPi on"); print("mainio"); print("tietokone")
Tutki miten rivit tulostuvat.
Python-tulkki ei tarvitse rivinvaihtoja, niitä kannattaa kuitenkin käyttää.
Lähdekoodista tulee näin luettavampaa, ilmavampaa.
Kommenteista
#-merkillä aloitetaan kommentit, ”risuaita”,
joka tarkoittaa että rivin loppuosa on kommentoitu ja jonka tulkki jättää huomioimatta.
Tulkin toiminta loppuu: exit() tai
tiedoston loppu-merkki, joka on Unix/Linux -käyttöjärjestelmässä CTRL+d.
Siis:
jos ohjelma jumittuu, siirrä hiirellä kursori Thonnyn Shelliin ja paina CTRL+d
Katenointi eli merkkijonojen yhdistäminen
Jos summa-operaatiota + sovelletaan kahden merkkijonon välille, syntyy uusi merkkijono,
jossa kaksi merkkijonoa on yhdistetty.
Kokeile mallikoodi ja luo omia. Miksi rivillä 17 on tulostuksessa sisennys?
Vihje: katso rivi 12.
Merkkijonoja voi jopa toistaa kertomerkillä.
Kokeile: Lisää viimeiseksi seuraava komento.
print (3*lause)
Pitkän merkkijonon katkaisu
Jos Sinulla on pitkä merkkijono, voit katkaista sen ja kirjoittaa jatkoa seuraavalle riville.
Merkkijonon katkaisuun käytetään “takakeno”-merkkiä , backslash.
Kokeile:
tuo takakeno lähemmäksi (poista väli) ed lauseen loppupistettä (rivi 12) ja
tarkkaile samalla mitä se vaikuttaa tulostukseen.
Merkkijonomuuttujan muuttaminen kokonaislukumuuttujaksi
Muuttujan tyyppi ei Python-kielessä ole pysyvä.
Eli kun tyyppi on asetettu, voidaan sitä muuttaa asettamalla sen arvo uudestaan erityyppisellä arvolla.
Ensin muuttujaan x sijoitetaan merkkijono, samalla muuttujasta x tulee merkkijonomuuttuja.
Seuraavaksi samaan x-muuttujaan sijoitetaan kokonaisluku 5 ja
samalla x-muuttujan tyyppi muuttuu integer- eli kokonaislukumuuttujaksi.
Uusi määritys, vaikka muuttujan nimi säilyy,
tuhoaa edellisen arvon ja kirjoittaa uuden arvon edellisen päälle/tilalle.
Rivi 16 todistaa, että muuttujasta tuli int-tyyppinen.
Muuttujan tyyppi määrittää minkä arvon siihen voi sijoittaa ja mitä tuolle arvolle voi tehdä.