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

bookMerkkijonojen Muuttumattomuus

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 tapahtuvia paikan päällä 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
copy

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

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Ketjutus on sallittua, mutta muista, että saat uuden olion jokaisessa vaiheessa.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Tehokas rakentaminen

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

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Huomautus

Opit lisää yhdistämis- ja muotoilutavoista 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. Mikä on suositeltavaa?

question mark

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

Select the correct answer

question mark

Mitä koodi tulostaa?

Select the correct answer

question mark

Sinun täytyy koota pitkä merkkijono monista pienistä osista. Mikä on suositeltavaa?

Select the correct answer

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

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes people make when working with immutable strings?

Can you show more examples of efficient string building?

Awesome!

Completion rate improved to 5.26

bookMerkkijonojen 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 tapahtuvia paikan päällä 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
copy

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

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Ketjutus on sallittua, mutta muista, että saat uuden olion jokaisessa vaiheessa.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Tehokas rakentaminen

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

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Huomautus

Opit lisää yhdistämis- ja muotoilutavoista 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. Mikä on suositeltavaa?

question mark

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

Select the correct answer

question mark

Mitä koodi tulostaa?

Select the correct answer

question mark

Sinun täytyy koota pitkä merkkijono monista pienistä osista. Mikä on suositeltavaa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
some-alt