Merkkijonot Pythonissa

Merkkijono eli str on muuttumaton tekstijono. Indeksit alkavat nollasta, ja viipaleella voit muodostaa uuden merkkijonon.

Pituus ja indeksit

len kertoo merkkijonon pituuden. Ensimmäinen merkki on indeksissä 0 ja viimeinen indeksissä -1. Olematon yksittäinen indeksi aiheuttaa IndexError-virheen. Viipaleen loppuraja ei kuulu tulokseen.

teksti = "Hello, KoodiGuru!"
print(len(teksti))
print(teksti[7], teksti[-1])
print(teksti[:5])

Tulostus (ilman syötteiden kysymystekstejä):

17
K !
Hello

Uusi teksti vanhasta

upper, lower ja strip palauttavat uusia merkkijonoja. strip poistaa oletuksena tyhjät merkit vain reunoilta. Alkuperäinen teksti ei muutu. + yhdistää tekstejä, join yhdistää kokoelman merkkijonoja valitulla erottimella.

teksti = " Hei maailma "
print(teksti.strip().upper())
sanat = ["Hei", "maailma"]
print(" ".join(sanat))
print("1" + "2")

Tulostus (ilman syötteiden kysymystekstejä):

HEI MAAILMA
Hei maailma
12

Monirivinen teksti

Kolme lainausmerkkiä sallii fyysiset rivinvaihdot merkkijonossa. Myös sisennys ja tyhjät rivit jäävät sen sisältöön. Kolmoislainaus ei muuta tekstiä kommentiksi.

runo = """Ensimmäinen rivi
Toinen rivi"""
print(runo)

Tulostus (ilman syötteiden kysymystekstejä):

Ensimmäinen rivi
Toinen rivi

Kenoviivat ja lainaukset

Tavallisessa merkkijonossa \ aloittaa pakomerkin: \n on rivinvaihto ja \\ yksi kenoviiva. Raaka merkkijono r"..." säilyttää kenoviivat; se ei voi päättyä parittomaan määrään kenoviivoja ennen sulkevaa lainausmerkkiä.

polku = "C:\\Desktop\\file.txt"
print(polku)
print(r"C:\Desktop\file.txt")

Tulostus (ilman syötteiden kysymystekstejä):

C:\Desktop\file.txt
C:\Desktop\file.txt

Kokeile itse

Miksi teksti[0] = "X" ei muuta merkkijonoa?

Vastaus ja perustelu

str on muuttumaton. Voit rakentaa uuden jonon esimerkiksi "X" + teksti[1:] ja sijoittaa sen takaisin muuttujaan.

Suorita koodiesimerkit yksi kerrallaan. Jokainen esimerkki sisältää tarvitsemansa määrittelyt. Vertaa omaa ennustettasi tulosteeseen ennen seuraavaan aiheeseen siirtymistä.

Katso aihevideo YouTubessa