← DotPy / wszystkie wpisy

·

Myśląc o Pythonie: Stringi cz.2

Myśląc o Pythonie: Stringi cz.2

Dziś kontynuujemy temat łańcuchów znaków, czyli po prostu tekstu w Pythonie. Należy jednak wspomnieć, że ta koncepcja rozciąga się na wiele innych języków programowania, nie mówimy tutaj zatem tylko o Pythonie.

W Pythonie mamy dostępną wielką ilość przetwarzania stringów, czyli po prostu wykonywania na nich różnych operacji. Zacznijmy od podstaw.

Operacje na stringach

Rozpoczniemy od sprawdzenia długości danego stringa, wyrażonej ilością znaków, użyjemy tu funkcji len(). Stwórzmy więc jakiegoś stringa i zobaczmy jak to wykonać.

Ilustracja 1 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Sprawdzanie długości napisu w języku Python

Powyżej mamy stworzony napis o nazwie „string1” i wartości „jakis sobie napis”, a w następnej linii sprawdzamy jego długość funkcją len, której jako argument w nawiasie podajemy właśnie nazwę napisu, którego długość ma sprawdzić. Wszystko oczywiście wyświetlamy zawierając w funkcji print, bo len służy tylko do sprawdzania długości, sama nic nie wyświetla. Wynik widzimy poniżej.

Ilustracja 2 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Wynik działanie funkcji len na napisie.

Dlaczego akurat 17? Ano dlatego, że choć nie widać, spacja to też znak, więc też się liczy. Przykładowo, jak chcielibyśmy wyświetlić znak numer 5…

Ilustracja 3 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Wyświetlanie znaku spacji za pomocą odniesienia do indexu danego znaku w tekście, w języku Python.

….no, w ten czas nie zobaczymy niczego.

Ilustracja 4 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Efekt wyświetlenia znaku spacje w Pythonie.

Konwersja napisu na wielkie litery

Teraz możemy się pobawić z naszym napisem, zmieniając go jakoś 🙂 No właśnie przykładowo możemy zamienić go na duże litery. Do takich operacji służą Nam tak zwane metody. Cóż to jest zapytacie? Metoda to po prostu taka funkcja, ale będąca częścią wewnętrzną czegoś. Jeśli ubranie okala człowieka i jest tutaj funkcją, to metoda będzie tutaj częścią tego ubrania, tak jak np. guzik od koszuli.

Metoda jest po prostu czymś co możemy zastosować na jakimś konkretnym obiekcie, jest ona przypisana do tego obiektu, jako niejako jego atrybut. Przykładowo, jeśli mamy stringi to mamy też do nich od razu zestaw możliwych do użycia metod, jedną z nich jest .capitalize(), która służy właśnie do zamiany pierwszej litery na wielką.

Ilustracja 5 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Zmiana pierwszej litery na wielką w napisie, w języku Python.

Jak widzimy, po pierwsze używamy metod właśnie jako „części wewnętrznej” danego obiektu (w Pythonie wszystko jest obiektem). Dlatego używamy najpierw nazwy obiektu na jakim chcemy zastosować metodę, a po kropce, nazwę metody z nawiasami. Efekt działania powyższej metody widzimy poniżej.

Ilustracja 6 do artykułu „Myśląc o Pythonie: Stringi cz.2”
W wynik działanie metody capitalize w Pythonie.

Jak widzimy pierwsza litera naszego napisu została zamieniona na wielką, czyli działa 🙂

Mamy do dyspozycji także inne metody, dla stringów jest także dostępna metoda .title(), która zamienia każdą pierwszą literę na wielką, zobaczmy na przykładzie Naszego napisu.

Ilustracja 7 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Użycie metody title w języku Python

Jak widzimy, używamy metody tak samo jak wszystkich metod, zobaczmy zatem rezultat:

Ilustracja 8 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Wynik działania metody title na stringu.

Wycinanie czyli slicing

W stringach, jak pamiętamy, mamy coś takiego jak indeks pojedynczego znaku i właśnie to wykorzystamy. Jak pamiętamy, możemy w kwadratowym nawiasie po nazwie stringa, zapisać jaki znak chcemy.

Ilustracja 9 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Wyświetlanie pojedynczego znaku w napisie, w języku Python.

Możemy też w nawiasie zamiast tylko numeru indeksu, zdefiniować sobie zakres indeksów, czyli finalnie liter jakie chcemy otrzymać z danego stringa. Przykładowo jeśli chcielibyśmy uzyskać słowo „ja” , czyli w naszym napisie litery stojące na indeksach 0 i 1, to wpisalibyśmy string1[0:2] – dlaczego na końcu dwa, zapytacie? Bowiem zawsze zakres to indeks od jakiego zaczynamy i indeks na jakim kończymy, ale minus 1, zobaczmy (oczywiście wartości początka i końca zakresu mogą być dowolne):

Ilustracja 10 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Definiowanie zakresu indeksów w napisie, za pomocą metody wycinania, w języku Python.

Wynikiem, jak możemy się domyślać, będą litery 'j’ i 'a’, będące na indeksach o numerach 0 i 1:

Ilustracja 11 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Wynik działania wycinania w stringach, w języku Python.

Oczywiście możemy teraz przykładowo jeszcze powiększyć pierwszą literę, spróbujcie zrobić to sami, a rozwiązanie znajdziecie na końcu artykułu.

Możemy też sobie przykładowo pomnożyć stringa przez jakąś liczbę, lub przez innego stringa.

Ilustracja 12 do artykułu „Myśląc o Pythonie: Stringi cz.2”

Wynik to będzie po prostu, jak można się domyślić, string abc wypisany 5 razy, czyli:

Ilustracja 13 do artykułu „Myśląc o Pythonie: Stringi cz.2”

Rozwiązania

Powiększyć pierwszą literę wyciętego stringa możemy na dwa sposoby, albo możemy zapisać go do zmiennej i na niej zastosować metodę title lub capitalize, ale można też zastosować jedną z nich bezpośrednio na wycinanym stringu, jak poniżej:

Ilustracja 14 do artykułu „Myśląc o Pythonie: Stringi cz.2”
Powiększenie pierwszej litery bezpośrednio na wycinanym stringu.

Przedstawiony kodzik możecie przetestować sami :). W programowaniu nie ma jednej najlepszej drogi, dlatego każda droga prowadząca do celu będzie na początku dobra, niektóre mogą być bardzie optymalne 🙂

</>
Więcej artykułów