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ä.