Lekcje modułu (2/4)
Slicing i indeksowanie
W Pythonie ciągi znaków są sekwencjami znaków: możesz uzyskać dostęp do
poszczególnych znaków za pomocą indeksu i wycinać podciągi przy użyciu składni
slice [start:stop:step] — dokładnie tak samo jak w przypadku list.
Indeksy dodatnie i ujemne
s = "Python"
# 0123456
# -6-5-4-3-2-1
s[0] # 'P'
s[5] # 'n'
s[-1] # 'n' (ultimo)
s[-2] # 'o' (penultimo)Próba dostępu do indeksu poza zakresem zgłasza błąd IndexError.
Slicing [start:stop:step]
s = "Python"
s[0:3] # 'Pyt' indici 0,1,2 (stop ESCLUSO)
s[2:] # 'thon' dal 2 alla fine
s[:3] # 'Pyt' dall'inizio fino al 3 (escluso)
s[:] # 'Python' copia completa
s[-3:] # 'hon' ultimi 3
s[:-2] # 'Pyth' tutto tranne gli ultimi 2W przeciwieństwie do indeksowania, slicing NIE zgłasza błędów, jeśli indeksy są poza zakresem: wycina to, co jest możliwe.
Trzeci argument: step
s = "Python"
s[::2] # 'Pto' salta uno sì uno no
s[1::2] # 'yhn' dispari
s[::-1] # 'nohtyP' INVERSIONE (idiom famoso)s[::-1] to idiomatyczny sposób na odwrócenie ciągu znaków.
Długość i zawieranie się
len("Python") # 6
"th" in "Python" # True
"java" in "Python" # FalseUjemne indeksy i krok (step) w slicingu
La syntaxe complète du tranchage est s[start:stop:step]. Jeśli pominiesz start i stop, ale ustawisz ujemny step na -1 (s[::-1]), odwrócisz ciąg znaków. Ujemny indeks -1 zawsze reprezentuje ostatni znak ciągu, -2 przedostatni itd.
Spróbuj sam
Mając dane `word = 'PROGRAMMAZIONE'`, uzyskaj jego odwrócenie w zmiennej `reversed_word`. Oceń `reversed_word`.
Pokaż wskazówkę
word[::-1]
Rozwiązanie dostępne po 3 próbach
Ćwiczenie powtórzeniowe
Mając dany `email = 'ada@example.com'`, wyodrębnij domenę (wszystko po '@') do zmiennej `domain` za pomocą slicingu po uprzednim znalezieniu indeksu za pomocą metody .find. Oceń `domain`.
Pokaż wskazówkę
email[email.find('@') + 1:]
Rozwiązanie dostępne po 3 próbach
Dodatkowe wyzwanie
Mając dany ciąg znaków `word = "pythonista"`, użyj slicingu do wyodrębnienia pierwszych 3 znaków oraz ostatnich 3 znaków, a następnie połącz je w nowy ciąg `short_word`. Na koniec oceń `short_word` (powinno dać `'pytsta'`).
Pokaż wskazówkę
Pierwsze 3 znaki to word[:3], ostatnie 3 to word[-3:]. Połącz oba wycinki.
Rozwiązanie dostępne po 3 próbach