Programowanie w Pythonie (3): Łańcuchy znaków

Programowanie wymaga umiejętności pracy z danymi tekstowymi. Formularze internetowe, zestawy danych sczytywane z różnych czujników i tym podobne trzeba na pewnym etapie obrabiać i umieć przedstawiać je w postaci przystępnej dla zwykłego użytkownika. Dlatego tak ważna jest umiejętność pracy na łańcuchach znaków. W Pythonie jest ona bardzo rozbudowana i dzięki temu ceniona przez specjalistów z wielu dziedzin nauki. W tej lekcji postaramy się wgryźć w ten temat.

Stringi

Kolejnym przykładem typów danych są łańcuchy znaków. Od tego momentu będę je nazywać po prostu stringami. Mogą one zawierać litery, liczby i symbole. Na początek przygody z programowaniem można je utożsamiać ze zwykłym tekstem.

1
2
3
imie = "jan"
wiek = "19"
jedzenie = "chleb"

W powyższym fragmencie kodu tworzymy trzy zmienne, które będą traktowane jak łańcuchy znaków. Jak widać przypisują wartość do stringa musimy użyć cudzysłowów.

Ćwiczenie

W interpreterze Pythona przypisz teraz zmiennym ananas, banan, cytryna wartości smaczny, pyszny, dobry. Następnie wywołaj wszystkie zmienne za pomocą funkcji print().

Znaki ucieczki

Niektóre znaki mogą stwarzać problemy interpreterowi Pythona. Na przykład kod:

1
"Do Scrooge'a przyszedł duch teraźniejszości"

Python będzie myślał, że apostrof w wyrazie Scrooge’a kończy stringa. Możemy używać backslasha – \, żeby naprawić ten problem w taki sposób, jak przedstawiono to poniżej.

1
"Do Scrooge\'a przyszedł duch teraźniejszości"

Indeksowanie stringów

Każdy znak w stringu jest przypisany do konkretnej liczby. Ta liczba jest nazywana indeksem. Zawsze zaczynamy liczyć znaki zaczynając od liczby zero.

1
2
znak1 = "kot"[0]
znak2 = "pies"[3]

W powyższym fragmencie, tworzymy nową zmienną o nazwie znak1 i ustawiamy ją na literę "k". W analogiczny sposób wartość zmiennej znak2 ustawiamy na literę "s".

Tak Python numeruje kolejne znaki w stringu

Ćwiczenie

W interpreterze Pythona utwórz zmienną siedem i ustaw jej wartość tak, by po wywołaniu jej funkcją print(), wypisana została siódma litera wyrażenia "Kolorowe jarmarki".

Funkcje i metody stringów

Teraz, gdy wiemy już jak przechowywać stringi, nauczymy się z nimi pracować za pomocą metod. Zadaniem metod jest wykonywanie specjalnych zadań dla stringów.

Skupimy się na następujących czterech:

  • len(),
  • lower(),
  • upper(),
  • str().

Zaczniemy od funkcji len(), która zwraca liczbę znaków, z jakiej składa się dany łańcuch znaków. W interpreterze Pytona zapisuj kolejno następujące komendy i obserwuj, co się stanie.

1
2
papuga = "Nymphicus hollandicus"
print(len(papuga))

Interpreter powinien zwrócić liczbę, będącą długością całego ciągu znaków papuga.

Metoda lower() sprawia, że wszystkie znaki w danym stringu zostaną zmienione na małe litery. By to zobaczyć, spróbuj wywołać w interpreterze komendę:

1
print papuga.lower()

Podobną w działaniu metodą jest upper(). Sprawia ona, że wszystkie znaki pisane są z wielkich liter. Zobacz komendę:

1
print papuga.upper()

Przydatna w użyciu jest też funkcja str(). Jej zadaniem jest zamiana nie-stringów na stringi. Na przykład str() zamieni liczbę 2 na tekst "2".

Przyjrzyjmy się dokładniej czterem poznanym rzeczom. Druga i trzecia były metodami i mogą działać tylko ze stringami – możemy je wywoływać pisząc po nazwie zmiennej kropkę, a następnie wywołując metodę. Pierwsza i czwarta to funkcje – nie możemy używać przy niej notacji z kropką, ale za to będą one działały też z innymi typami danych niż ze stringami.

Zaawansowane użycie funkcji print

Wiemy już nieco o stringach oraz o operacjach arytmetycznych. Połączmy teraz wiedzę o jednym i o drugim.

1
print("Papuga " + "lata" + " w pokoju")

Powyższy kod zwróci nam frazę "Papuga lata w pokoju". Operator + między stringami „doda” je do siebie. Zauważ też, że wewnątrz cudzysłowów umieszczono spacje po wyrazie "Papuga" i przed wyrazem "w pokoju". W ten sposób te trzy połączone stringi mogą wyglądać jak jeden wyraz.

Dodawanie stringów do siebie nazywa się konkatencją.

Czasami zachodzi potrzeba dodania czegoś, co jest stringiem do czegoś, co stringiem nie jest. W tym celu musimy przekonwertować nie-stringa w stringa. Przykładowo kod

1
print("Mam " + str(2) + " papugi")

Formatowanie stringów ze znakiem %

Jeśli chce się zwrócić zmienną wraz ze stringiem, istnieje lepsza metoda na konkatencję stringów ze sobą. Sprawdźmy działanie poniższego fragmentu kodu:

1
2
imie = "Gaweł"
print("Witaj %s" % (imie))

Operator %, użyty po stringu łączy stringi ze zmiennymi. Wyrażenie %s zostanie zamienione na łańcuch znaków, który zostanie wywołany jako pierwszy. Możemy tak postępować nawet z więcej niż jedną zmienną. Wystarczy wypróbować ten kod, by się o tym przekonać.

1
2
3
4
5
imie = "Jan"
kolor = "zielony"
jedzenie = "bigos"

print("Mam na imię %s, a moim ulubionym kolorem jest %s. Lubię jeść %s" % (imie,kolor,jedzenie))

Zaliczenie lekcji

Utwórz plik lekcja1.py, a w jego wnętrzu zapisz kod w taki sposób by:

  1. Zmienna kolor została ustawiona na wartość "zielony"
  2. Python zwracał długość zmiennej kolor.
  3. Na ekranie pojawiła się zmienna kolor zapisana wyłącznie kapitalikami (wielkimi literami).

Uwaga: Punkty 2. i 3. mają zostać zwrócone w postaci jednego zdania, w taki sposób jak jest to przedstawione poniżej.

1
"Wyraz ZIELONY składa się z 7 znaków."

Nauczyciel matematyki i przedmiotów informatycznych w Dwujęzycznych Szkołach im. Władysława Kopalińskiego w Bielsku-Białej. Autor wielu publikacji poświęconych nauce podstaw programowania, w tym „Scratch. Nauka programowania przez zabawę”, wydanej drukiem przez wydawnictwo Komputer Świat. Entuzjasta wykorzystywania nowych nowoczesnych narzędzi w czasie lekcji. Prywatnie miłośnik koszykówki i aktywnego wykorzystywania czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.