Programowanie wybranych algorytmów na tekstach

Poziom: klasa 3 liceum ogólnokształcącego, poziom podstawowy

1. Wprowadzenie

W informatyce tekstem nazywamy ciąg znaków, na przykład:

  • słowo: "kot",
  • zdanie: "To jest przykład.",
  • dowolny zestaw liter i znaków: "A1b!#".

W programowaniu tekst często nazywany jest stringiem (typ str). Algorytmy na tekstach to sposoby przetwarzania napisów, na przykład:

  • liczenie znaków,
  • wyszukiwanie fragmentu tekstu,
  • zamiana znaków lub słów,
  • sprawdzanie, czy dane słowo występuje w tekście,
  • porównywanie tekstów.

Takie algorytmy pojawiają się między innymi w:

  • wyszukiwarkach internetowych,
  • edytorach tekstu (funkcje typu „Znajdź i zamień”),
  • filtrach wiadomości (np. wykrywanie spamu),
  • komunikatorach i portalach społecznościowych.

2. Podstawowe pojęcia: string, znak, indeks, długość tekstu

2.1. String (tekst)

String to ciąg znaków zapisany w cudzysłowie:

tekst = "Ala ma kota"

2.2. Znak

Znak to pojedyncza litera, cyfra lub symbol, na przykład: "A", "!", "7".

2.3. Indeks znaku

Każdy znak w tekście ma swój numer pozycji, czyli indeks. W języku Python numerowanie zaczyna się od 0.

Przykład – tekst:

A  l  a     m  a     k  o  t  a
0  1  2  3  4  5  6  7  8  9  10

2.4. Długość tekstu

Długość tekstu to liczba znaków, z uwzględnieniem spacji. W Pythonie do obliczenia długości tekstu służy funkcja len().

tekst = "Ala ma kota"
print(len(tekst))  # wynik: 11

3. Podstawowe operacje (algorytmy) na tekstach

3.1. Liczenie długości tekstu

Jest to jeden z najprostszych algorytmów na tekstach – po prostu liczymy, ile znaków znajduje się w ciągu.

tekst = "Ala ma kota"
dlugosc = len(tekst)
print(dlugosc)  # 11

3.2. Wyszukiwanie znaku lub fragmentu tekstu

a) Sprawdzanie, czy znak/fragment występuje w tekście

Do sprawdzenia, czy dany znak lub fragment występuje w tekście, można użyć operatora in.

tekst = "Ala ma kota"
print("a" in tekst)  # True
print("z" in tekst)  # False

b) Sprawdzanie, od którego miejsca zaczyna się fragment

Metoda .find() zwraca indeks (pozycję), od której zaczyna się dany fragment, lub -1, jeśli fragment nie występuje w tekście.

tekst = "Ala ma kota"
pozycja = tekst.find("ma")
print(pozycja)  # 4

3.3. Zliczanie wystąpień znaku lub słowa

Metoda .count() zwraca liczbę wystąpień danego fragmentu w tekście.

tekst = "banana"
print(tekst.count("a"))   # 3
print(tekst.count("na"))  # 2

3.4. Zamiana fragmentu tekstu

Metoda .replace() pozwala zamienić wszystkie wystąpienia jednego fragmentu na inny.

tekst = "Ala ma kota"
nowy = tekst.replace("kota", "psa")
print(nowy)  # Ala ma psa

3.5. Porównywanie tekstów

Teksty można porównywać za pomocą operatora ==.

print("Ala" == "Ala")  # True
print("Ala" == "ala")  # False

Czasem nie chcemy rozróżniać wielkości liter. Wtedy możemy najpierw zamienić tekst na małe litery:

print("Ala".lower() == "ala".lower())  # True

lub krócej

print('Ala'.lower() == 'ala')  # True

3.6. Odwracanie tekstu

Odwrócenie tekstu oznacza zapisanie go „od końca”, na przykład: "pies" → "seip".

tekst = "pies"
odwrocony = tekst[::-1]
print(odwrocony)  # seip

3.7. Usuwanie spacji na początku i końcu tekstu

Metoda .strip() usuwa zbędne spacje z początku i końca tekstu.

tekst = "   hej   "
czysty = tekst.strip()
print(czysty)  # "hej"

4. Przykłady algorytmów na tekstach — krok po kroku

4.1. Przykład 1: Liczenie liczby liter „a” w tekście

Opis algorytmu (słownie):

  1. Weź dany tekst.
  2. Ustaw licznik na 0.
  3. Przejdź po każdym znaku tekstu.
  4. Jeśli znak jest równy "a", zwiększ licznik o 1.
  5. Po przejściu przez wszystkie znaki wypisz wartość licznika.

W Pythonie:

tekst = "Ala ma kota"
licznik = 0

for znak in tekst:
    if znak == "a":
        licznik += 1

print(licznik) # 3 bo bierzemy pod uwagę tylko małe a

4.2. Przykład 2: Sprawdzenie, czy w tekście jest słowo „kot”

Opis:

  1. Weź tekst.
  2. Sprawdź, czy fragment "kot" występuje w tekście.
  3. Jeśli tak, wypisz odpowiedni komunikat, jeśli nie — inny.

W Pythonie:

tekst = "Ala ma kota"

if "kot" in tekst:
    print("W tekście jest słowo 'kot'.")
else:
    print("W tekście nie ma słowa 'kot'.")

4.3. Przykład 3: Zamiana spacji na myślniki

W tym przykładzie zamienimy wszystkie spacje w tekście na myślniki, na przykład: "Ala ma kota" → "Ala-ma-kota".

tekst = "Ala ma kota"
nowy = tekst.replace(" ", "-")
print(nowy)  # Ala-ma-kota

5. Podsumowanie

W tej lekcji poznaliśmy podstawowe pojęcia oraz algorytmy związane z tekstami (stringami) w programowaniu:

  • Tekst (string) to ciąg znaków zapisany w cudzysłowie.
  • Każdy znak ma swój indeks (pozycję), numerowaną od 0.
  • Długość tekstu można obliczyć za pomocą funkcji len().
  • Operator in pozwala sprawdzić, czy dany fragment występuje w tekście.
  • Metoda .find() zwraca pozycję, od której zaczyna się fragment (lub -1, jeśli go nie ma).
  • Metoda .count() liczy wystąpienia fragmentu w tekście.
  • Metoda .replace() służy do zamiany fragmentów tekstu.
  • Metody .lower() i .upper() zmieniają wielkość liter.
  • Tekst można odwrócić za pomocą zapisu tekst[::-1].
  • Metoda .strip() usuwa spacje na początku i końcu tekstu.

Algorytmy na tekstach są proste, ale bardzo praktyczne. Pojawiają się w wielu programach i aplikacjach, z których korzystamy na co dzień. Zrozumienie tych podstaw pozwala budować coraz bardziej zaawansowane rozwiązania.

Karta pracy – pobierz