Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Merkkijonon Muuttumattomuus | Merkkijonot
Tietotyypit Pythonissa

Merkkijonon Muuttumattomuus

Pyyhkäise näyttääksesi valikon

Pythonissa merkkijonot ovat muuttumattomia: kun merkkijono on luotu, sen sisältämiä merkkejä ei voi muuttaa paikan päällä. Kaikki "muokkaukset" luovat itse asiassa uuden merkkijonon. Tämä on tärkeää sekä oikeellisuuden (ei vahingossa tehtyjä muutoksia) että suorituskyvyn (kuinka rakennat suurempia merkkijonoja) kannalta.

Ei paikan päällä tehtäviä muutoksia

Merkkejä voi lukea indeksin avulla, mutta niihin ei voi tehdä sijoituksia.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment

Useimmat merkkijonometodit palauttavat uuden merkkijonon ja jättävät alkuperäisen muuttumattomaksi.

12345678
# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Note
Huomio

.strip(): poistaa merkkijonon alusta ja lopusta välilyönnit.

Syntaksi: string.strip()

Ketjutus on sallittua, mutta muista, että saat uuden olion jokaisella askeleella.

123456
# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
Note
Huomio

.upper(): Palauttaa kopion merkkijonosta, jossa kaikki merkit ovat isoja kirjaimia.

Syntaksi: string.upper()

"Muokkaaminen" luomalla uusi merkkijono

Käytä viipalointia, replace-metodia tai yhdistämistä (konkatenointia) uuden arvon tuottamiseen.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Huomio

.replace(): palauttaa kopion merkkijonosta, jossa kaikki alimerkkijonon esiintymät on korvattu toisella alimerkkijonolla.

Syntaksi: string.replace(old, new)

Tehokas rakentaminen

Toistuva + suurissa silmukoissa voi olla hidasta (paljon väliaikaisia merkkijonoja). Yleinen tapa on kerätä osat ja yhdistää ne kerralla:

1234
# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Note
Huomio

.join(): Yhdistää iteroitavan (kuten listan) alkiot yhdeksi merkkijonoksi, eroteltuna sillä merkkijonolla, jonka metodilla yhdistäminen tehdään.

Syntaksi: separator.join([str, str, ...])

Note
Huomio

Lisää yhdistämis- ja muotoilumalleja käsitellään seuraavassa luvussa.

1. Mikä rivi yrittää muokata merkkijonoa paikallaan ja aiheuttaa virheen?

2. Mitä koodi tulostaa?

3. Sinun täytyy koota pitkä merkkijono monista pienistä osista. Mitä suositellaan?

question mark

Mikä rivi yrittää muokata merkkijonoa paikallaan ja aiheuttaa virheen?

Valitse oikea vastaus

question mark

Mitä koodi tulostaa?

Valitse oikea vastaus

question mark

Sinun täytyy koota pitkä merkkijono monista pienistä osista. Mitä suositellaan?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 4
some-alt