Przejdź do tematu:
Łańcuchy w Pythonie
Przejdź do ćwiczenia:
Decydowanie
Włącz widok pełnoekranowy

Korzystasz z platformy z limitem dziennym na liczbę odpowiedzi. Aby zwiększyć limit lub uzyskać dostęp do konta z licencją, zaloguj się.

Zaloguj się
Udostępnij Pokaż wyjaśnienie do tematu Pokaż ustawienia ćwiczenia
Łańcuchy w Pythonie

Zapis łańcuchów znaków

Łańcuchy znaków zapisujemy w cudzysłowach lub apostrofach. W Pythonie 3 łańcuchy mogą zawierać również znaki diakrytyczne.

a = "To jest łańcuch znaków"

b = 'To też jest łańcuch znaków'

print(a, b)

Indeksowanie

Do poszczególnych znaków łańcucha odwołujemy się za pomocą indeksowania w nawiasach kwadratowych. Uwaga: indeksowanie zaczyna się od zera. Python (w przeciwieństwie do większości innych języków programowania) pozwala także na indeksowanie od końca za pomocą liczb ujemnych.

text = "krowa"

text[0]     # pierwsza litera => 'k'

text[1]     # druga litera => 'r'

text[4]     # piąta, ostatnia litera => 'a'

text[-1]    # ostatnia litera => 'a'

text[-2]    # przedostatnia litera => 'w'

Za pomocą dwukropka możemy wycinać podłańcuch.

text = "informatyk"

print(text[2:6])  # od pozycji 2 do 5 => form

print(text[:3])   # pierwsze 3 znaki => inf

print(text[-4:])  # ostatnie 4 znaki => atyk

Bardziej zaawansowanym elementem jest użycie dwóch dwukropków, gdzie trzecia wartość oznacza krok:

text = "Mamy-kotka-i-pieska"

print(text[5:15:2])  # od pozycji 5 do 14, co 2 => ktaip

print(text[::3])     # od początku do końca, co 3 => Myoa-ea

print(text[::-1])    # odwrócony tekst => akseip-i-aktok-ymaM

Iteracja po łańcuchu znaków

Poszczególne znaki łańcucha możemy łatwo przeglądać za pomocą pętli for.

text = "kotwica"

for letter in text:

    print("litera:", letter)

Niezmienność łańcuchów znaków

Łańcuchy znaków w Pythonie są niemutowalnym (immutable) typem danych. Jest to jedna z cech, która odróżnia je od list. Oznacza to, że nie możemy zmienić pojedynczego znaku w istniejącym łańcuchu. Musimy utworzyć nowy łańcuch, w którym dana litera zostanie zmieniona.

text = "korek"

text[2] = "t"                 # TypeError - łańcuch znaków nie pozwala na zmianę pojedynczego znaku

text = text[:2]+"n"+text[3:]  # tworzymy nowy łańcuch

print(text)

Operacje na łańcuchach znaków

Łańcuchy znaków można dodawać (łączyć). Możemy je także mnożyć przez liczbę całkowitą (powielać). Do innych przydatnych operacji należy sprawdzanie długości (‘len’) oraz testowanie obecności podłańcucha (‘in’).

text = "Biały"

text + "stok"  # => Białystok

3*text         # => BiałyBiałyBiały

len(text)      # => 5

"a" in text    # => True

Łańcuchy znaków są obiektami i mają wiele przydatnych metod wywoływanych w notacji kropkowej. Np. zamiana na wielkie lub małe litery (upper, lower), dzielenie łańcucha według podanego znaku (split) oraz zastępowanie podłańcucha (replace):

text = "Lublin"

text.upper()               # => LUBLIN

text.lower()               # => lublin

text.split("l")            # => ['Lub', 'in']

text.replace("Lu", "Du") # => Dublin

Zauważ, że używamy notacji kropkowej text.upper(), a nie funkcji upper(text), ponieważ łańcuchy znaków są obiektami.

Operacje na znakach

Podczas pracy z łańcuchami znaków czasami przydają się również operacje na pojedynczych znakach, a w szczególności funkcje ord i chr, które zamieniają znaki na liczby całkowite i odwrotnie:

  • ord(c) zwraca kod znaku c,
  • chr(i) zwraca znak kodzie i.

Pod pojęciem „kod” rozumie się numer w kodowaniu Unicode. W podstawowych zastosowaniach litery w tym kodowaniu są ułożone alfabetycznie jedna po drugiej (dotyczy to głównie alfabetu angielskiego). W ten sposób możemy wypisać litery alfabetu angielskiego:python start = ord('A') for i in range(26): print(chr(start + i))

Łańcuchy w Pythonie (łatwe)

NAPISZ DO NAS

Twoja wiadomość została wysłana. Dziękujemy.

Napisz do nas

Jesteś w kropce?

Zanim zadasz pytanie, zapoznaj się z instrukcjami:

Prosimy o nieprzesyłanie próśb o gotowe rozwiązania. Jeśli zgłaszasz błąd, dokładnie opisz, czego dotyczy, i dołącz zrzut ekranu.

Wybierz temat

Wiadomość Zgłoszenie błędu Treści Sterowanie Logowanie Licencja