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

bookEtsiminen ja Mittaaminen

Kun osaat lukea merkkijonon osia, seuraava vaihe on esittää kysymyksiä sen sisällöstä: "sisältääkö se tämän?", "missä se on?", "kuinka monta kertaa?", "alkaako/päättyykö se…?".

Jäsenyys

Käytä in-operaattoria tarkistaaksesi, esiintyykö alimerkkijono missä tahansa merkkijonossa. Palauttaa totuusarvon (Boolean).

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

Sijaintien etsiminen

  • find(sub) palauttaa ensimmäisen osuman aloitusindeksin, tai -1 jos ei löydy;
  • rfind(sub) etsii oikealta ja palauttaa viimeisen osuman indeksin (tai -1);
  • index(sub) toimii kuten find, mutta nostaa ValueError-poikkeuksen jos alimerkkijono puuttuu.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Esiintymien laskeminen

count(sub) palauttaa kuinka monta kertaa alimerkkijono esiintyy päällekkäistymättä.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

Alku ja loppu

Merkkijonon alun tai lopun tarkistamiseen käytetään startswith- tai endswith-metodia; nämä ovat selkeämpiä ja turvallisempia kuin viipalointi, kun tarvitset vain kyllä/ei-vastauksen.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

Tapausriippumattomat tarkistukset (yksinkertainen ja käytännöllinen)

Merkkijonometodit ovat tapausriippuvaisia. Tapausriippumattomaan hakuun normalisoi molemmat osapuolet metodilla .lower() (tai .upper()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Huomio

Käytimme jo len()-funktiota edellisessä luvussa pituuden mittaamiseen; tässä keskitytään sisällön tarkistuksiin ja sijainteihin.

1. Mitä tämä koodi tulostaa?

2. Mikä lauseke ei aiheuta virhettä, kun osajono puuttuu?

3. Kun s = "Banana", mikä lauseke palauttaa True kirjainkoosta riippumatta tarkistettaessa etuliitettä "ba"?

question mark

Mitä tämä koodi tulostaa?

Select the correct answer

question mark

Mikä lauseke ei aiheuta virhettä, kun osajono puuttuu?

Select the correct answer

question mark

Kun s = "Banana", mikä lauseke palauttaa True kirjainkoosta riippumatta tarkistettaessa etuliitettä "ba"?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Awesome!

Completion rate improved to 5

bookEtsiminen ja Mittaaminen

Pyyhkäise näyttääksesi valikon

Kun osaat lukea merkkijonon osia, seuraava vaihe on esittää kysymyksiä sen sisällöstä: "sisältääkö se tämän?", "missä se on?", "kuinka monta kertaa?", "alkaako/päättyykö se…?".

Jäsenyys

Käytä in-operaattoria tarkistaaksesi, esiintyykö alimerkkijono missä tahansa merkkijonossa. Palauttaa totuusarvon (Boolean).

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

Sijaintien etsiminen

  • find(sub) palauttaa ensimmäisen osuman aloitusindeksin, tai -1 jos ei löydy;
  • rfind(sub) etsii oikealta ja palauttaa viimeisen osuman indeksin (tai -1);
  • index(sub) toimii kuten find, mutta nostaa ValueError-poikkeuksen jos alimerkkijono puuttuu.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Esiintymien laskeminen

count(sub) palauttaa kuinka monta kertaa alimerkkijono esiintyy päällekkäistymättä.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

Alku ja loppu

Merkkijonon alun tai lopun tarkistamiseen käytetään startswith- tai endswith-metodia; nämä ovat selkeämpiä ja turvallisempia kuin viipalointi, kun tarvitset vain kyllä/ei-vastauksen.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

Tapausriippumattomat tarkistukset (yksinkertainen ja käytännöllinen)

Merkkijonometodit ovat tapausriippuvaisia. Tapausriippumattomaan hakuun normalisoi molemmat osapuolet metodilla .lower() (tai .upper()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Huomio

Käytimme jo len()-funktiota edellisessä luvussa pituuden mittaamiseen; tässä keskitytään sisällön tarkistuksiin ja sijainteihin.

1. Mitä tämä koodi tulostaa?

2. Mikä lauseke ei aiheuta virhettä, kun osajono puuttuu?

3. Kun s = "Banana", mikä lauseke palauttaa True kirjainkoosta riippumatta tarkistettaessa etuliitettä "ba"?

question mark

Mitä tämä koodi tulostaa?

Select the correct answer

question mark

Mikä lauseke ei aiheuta virhettä, kun osajono puuttuu?

Select the correct answer

question mark

Kun s = "Banana", mikä lauseke palauttaa True kirjainkoosta riippumatta tarkistettaessa etuliitettä "ba"?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt