Indeksering og Udskæring
Strenge er sekvenser: hvert tegn har en position (et indeks). Python bruger nul-baseret indeksering, så det første tegn er ved indeks 0. Du kan tage enkelte tegn med indeksering og intervaller af tegn med slicing.
Indeksering
Brug kantede parenteser med en enkelt position.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negative indekser tæller fra slutningen.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indeksering skal ramme en eksisterende position, ellers opstår IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Desuden er strenge uforanderlige, så du kan læse s[i], men ikke tildele til det.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Udskæring
En udskæring bruger start:stop:step og returnerer en ny streng. stop er eksklusiv (den er ikke inkluderet).
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)
Udskæringer er tolerante: hvis man går ud over grænserne, tilpasses de blot til gyldige værdier (ingen fejl).
12s = "python" print(s[0:100]) # 'python'
Negative indekser og omvendt rækkefølge
Det er muligt at blande negative indekser i slices, og et negativt step går baglæns.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step kan ikke være 0. Hvis step udelades, antages værdien 1. Hvis start eller stop udelades, betyder det "fra begyndelsen" / "til slutningen".
1. Hvilken værdi vil denne kode udskrive?
2. Hvilken værdi vil denne kode udskrive?
3. Hvilken erklæring giver en fejl for u = "hello"?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 5.26
Indeksering og Udskæring
Stryg for at vise menuen
Strenge er sekvenser: hvert tegn har en position (et indeks). Python bruger nul-baseret indeksering, så det første tegn er ved indeks 0. Du kan tage enkelte tegn med indeksering og intervaller af tegn med slicing.
Indeksering
Brug kantede parenteser med en enkelt position.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negative indekser tæller fra slutningen.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indeksering skal ramme en eksisterende position, ellers opstår IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Desuden er strenge uforanderlige, så du kan læse s[i], men ikke tildele til det.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Udskæring
En udskæring bruger start:stop:step og returnerer en ny streng. stop er eksklusiv (den er ikke inkluderet).
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)
Udskæringer er tolerante: hvis man går ud over grænserne, tilpasses de blot til gyldige værdier (ingen fejl).
12s = "python" print(s[0:100]) # 'python'
Negative indekser og omvendt rækkefølge
Det er muligt at blande negative indekser i slices, og et negativt step går baglæns.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step kan ikke være 0. Hvis step udelades, antages værdien 1. Hvis start eller stop udelades, betyder det "fra begyndelsen" / "til slutningen".
1. Hvilken værdi vil denne kode udskrive?
2. Hvilken værdi vil denne kode udskrive?
3. Hvilken erklæring giver en fejl for u = "hello"?
Tak for dine kommentarer!