Indeksointi ja Viipalointi
Merkkijonot ovat jonoja: jokaisella merkillä on sijainti (indeksi). Python käyttää nollapohjaista indeksointia, joten ensimmäinen merkki on indeksissä 0. Yksittäisiä merkkejä voi hakea indeksoinnilla ja merkkijonon osia viipaloinnilla.
Indeksointi
Käytä hakasulkeita ja yksittäistä sijaintia.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negatiiviset indeksit laskevat lopusta päin.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indeksoinnin on osuttava olemassa olevaan sijaintiin, muuten syntyy IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Lisäksi merkkijonot ovat muuttumattomia, joten voit lukea s[i], mutta et voi antaa sille uutta arvoa.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Viipalointi
Viipalointi käyttää muotoa start:stop:step ja palauttaa uuden merkkijonon. stop on eksklusiivinen (ei sisälly mukaan).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Viipaleet ovat sallivia: jos rajat ylitetään, viipale rajataan kelvollisiin arvoihin (ei virhettä).
12s = "python" print(s[0:100]) # 'python'
Negatiiviset indeksit ja kääntäminen
Negatiivisia indeksejä voi yhdistellä viipaleisiin, ja negatiivinen step kulkee taaksepäin.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step ei voi olla 0. Jos step jätetään pois, oletusarvo on 1. Jos start tai stop jätetään pois, tarkoittaa se "alusta" / "loppuun".
1. Mikä arvo tulostuu tästä koodista?
2. Mikä arvo tulostuu tästä koodista?
3. Mikä lause aiheuttaa virheen kun u = "hello"?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Indeksointi ja Viipalointi
Pyyhkäise näyttääksesi valikon
Merkkijonot ovat jonoja: jokaisella merkillä on sijainti (indeksi). Python käyttää nollapohjaista indeksointia, joten ensimmäinen merkki on indeksissä 0. Yksittäisiä merkkejä voi hakea indeksoinnilla ja merkkijonon osia viipaloinnilla.
Indeksointi
Käytä hakasulkeita ja yksittäistä sijaintia.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negatiiviset indeksit laskevat lopusta päin.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indeksoinnin on osuttava olemassa olevaan sijaintiin, muuten syntyy IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Lisäksi merkkijonot ovat muuttumattomia, joten voit lukea s[i], mutta et voi antaa sille uutta arvoa.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Viipalointi
Viipalointi käyttää muotoa start:stop:step ja palauttaa uuden merkkijonon. stop on eksklusiivinen (ei sisälly mukaan).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Viipaleet ovat sallivia: jos rajat ylitetään, viipale rajataan kelvollisiin arvoihin (ei virhettä).
12s = "python" print(s[0:100]) # 'python'
Negatiiviset indeksit ja kääntäminen
Negatiivisia indeksejä voi yhdistellä viipaleisiin, ja negatiivinen step kulkee taaksepäin.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step ei voi olla 0. Jos step jätetään pois, oletusarvo on 1. Jos start tai stop jätetään pois, tarkoittaa se "alusta" / "loppuun".
1. Mikä arvo tulostuu tästä koodista?
2. Mikä arvo tulostuu tästä koodista?
3. Mikä lause aiheuttaa virheen kun u = "hello"?
Kiitos palautteestasi!