Łańcuchy

Łańcuch to ciąg znaków o niezmiennej kolejności, który traktowany jest jak jedna wartość. Względem łańcuchów można stosować wszystkie funkcje i operatory działające na ciągach o niezmiennej kolejności, których zastosowanie skutkuje powstaniem nowego łańcucha. Na przykład "abcdef"[1:4] daje w wyniku "bcd".

W języku Python znaki przedstawiane są jako łańcuchy o jednostkowej długości.

Literały łańcuchowe definiuje się za pomocą pojedynczych lub potrójnych cudzysłowów. Łańcuchy zdefiniowane za pomocą pojedynczych cudzysłowów nie mogą być podzielone między wiersze, natomiast łańcuchy zdefiniowane za pomocą potrójnych cudzysłowów mogą być podzielone między wiersze. Łańcuch może być ujęty w znaki apostrofu (') lub cudzysłowu ("). Cudzysłów może obejmować zawierać inny znak cudzysłowu (tj. cudzysłów w apostrofie albo apostrof w cudzysłowie) bez znaku zmiany znaczenia albo ten sam znak cudzysłowu poprzedzony znakiem zmiany znaczenia (\).

Przykłady

"This is a string"
'This is also a string'
"It's a string"
'This book is called "Python Scripting and Automation Guide".'
"This is an escape quote (\") in a quoted string"

Analizator składni języka Python automatycznie łączy łańcuchy oddzielone białym znakiem. Ułatwia to wprowadzanie długich łańcuchów i stosowanie różnych cudzysłowów w jednym łańcuchu, na przykład:

"This string uses ' and " 'that string uses ".'

Wynikowy łańcuch ma postać:

This string uses ' and that string uses ".

Obiekty łańcuchowe oferują kilka przydatnych metod. Niektóre z nich opisano w poniższej tabeli.

Tabela 1. Metody udostępniane przez łańcuchy
Metoda Zastosowanie
s.capitalize() Zmień na wielkie wszystkie pierwsze litery wyrazów łańcucha s
s.count(ss {,start {,end}}) Zlicz wystąpienia łańcucha ss w łańcuchu s[start:end]
s.startswith(str {, start {, end}})
s.endswith(str {, start {, end}}) 
Sprawdź, czy s zaczyna się od str
Sprawdź, czy s kończy się na str
s.expandtabs({size}) Zastąp znaki tabulacji spacjami, domyślna szerokość tabulacji (size) wynosi 8
s.find(str {, start {, end}})
s.rfind(str {, start {, end}})
Znajduje indeks początku łańcucha str w łańcuchu s; jeśli nie zostanie znaleziony, zwraca -1. rfind szuka od prawej do lewej.
s.index(str {, start {, end}})
s.rindex(str {, start {, end}})
Znajduje indeks początku łańcucha str w łańcuchu s; jeśli nie zostanie znaleziony, generuje wyjątek ValueError. rindex szuka od prawej do lewej
s.isalnum Sprawdź, czy łańcuch zawiera tylko znaki alfanumeryczne.
s.isalpha Sprawdź, czy łańcuch zawiera tylko znaki alfabetu.
s.isnum Sprawdź, czy łańcuch zawiera liczbę.
s.isupper Sprawdź, czy wszystkie litery w łańcuchu są wielkie.
s.islower Sprawdź, czy wszystkie litery w łańcuchu są małe.
s.isspace Sprawdź, czy wszystkie litery w łańcuchu są białymi znakami.
s.istitle Sprawdź, czy łańcuch jest szeregiem podłańcuchów alfanumerycznych, z których każdy zaczyna się wielką literą.
s.lower()
s.upper()
s.swapcase()
s.title()
Zamień wszystkie litery na małe.
Zamień wszystkie litery na wielkie.
Zamień wszystkie małe
litery na wielkie, a wielkie na małe.
Zamień wszystkie
pierwsze litery wyrazów na wielkie.
s.join(seq) Połącz łańcuchy tworzące listę seq, stosując łańcuch s jako separator.
s.splitlines({keep}) Podziel s na wiersze; jeśli keep =true, zachowaj znaki nowego wiersza.
s.split({sep {, max}}) Podziel s na "wyrazy", używając separatora sep (domyślnie sep jest białym znakiem) maksymalnie max razy
s.ljust(width)
s.rjust(width)
s.center(width)
s.zfill(width)
Wyjustuj łańcuch do lewej w polu o szerokości width
Wyjustuj łańcuch do prawej w polu o szerokości width
Wycentruj łańcuch w polu o szerokości width
Wypełnij znakami 0.
s.lstrip()
s.rstrip()
s.strip()
Usuń początkowy biały znak
Usuń końcowy biały znak
Usuń początkowy i końcowy biały znak
s.translate(str {,delc}) Przekształć s na podstawie tabeli, usuwając uprzednio wszelkie znaki występujące w delc. str powinien być łańcuchem o długości == 256.
s.replace(old, new {, max}) Zastępuje wszystkie lub max wystąpień łańcucha old łańcuchem new