Operacje tekstowe i formatowanie tekstu

Stronę tą wyświetlono już: 314 razy

Operacje tekstowe

Łączenie tekstów

Listing 1
  1. name = "Jan"
  2. surname = "Kowalski"
  3. nameAndSurname = "Nazwisko i imię: "
  4. nameAndSurname += "Jan" + " " + "Kowalski"

Powtarzanie danego tekstu

Listing 2
  1. print("=" * 70)
  2. print("Wstęp:")
  3. print("=" * 70)

Długość tekstu

Istnieją dwa sposoby pozyskiwania długości tekstu, pierwszy za pomocą funkcji len:

Listing 3
  1. text = "Jakiś tekst"
  2. print(len(text))

drugi za pomocą bezpośredniego użycia wewnętrznej metody obiektu typu str:

Listing 4
  1. print("Jakiś tekst".__len__())

Dzielenie tekstu

Istnieje wewnętrzna metoda obiektów typu str, która umożliwia podział tekstu. Gdy metoda ta nie otrzymuje żadnych argumentów podział następuje względem znaku spacji:

Listing 5
  1. text = "Jakiś tekst do podziału".split()
  2. print(text)

Wynik działania powyższego kodu:

['Jakiś', 'tekst', 'do', 'podziału']

drugi za pomocą bezpośredniego użycia wewnętrznej metody obiektu typu str:

Listing 6
  1. print("Jakiś tekst do podziału\nna części".split("\n"))

Wynik działania powyższego kodu:

['Jakiś tekst do podziału', 'na części']

Wycinanie fragmentu tekstu

W bardzo prosty sposób można wycinać fragmenty tekstu w następujący sposób:

Listing 7
  1. tekst = "Jakiś tekst przykładowy"[6:11]
  2. print(tekst)

Wynik działania powyższego kodu:

'tekst'

Odwracanie tekstu

W równie prosty sposób można odwracać tekst:

Listing 8
  1. print("Jakiś tekst do odwrócenia"[::-1])

Wynik działania powyższego kodu:

'ainecórwdo od tsket śikaJ'

Kodu tego można użyć do napisania prostego programu sprawdzającego, czy dany wyraz jest palindromem:

Listing 9
  1. tekst = input("Podaj wyraz do sprawdzenia, czy jest palindromem: ")
  2. if tekst == tekst[::-1]:
  3. print("Palindrom")
  4. else:
  5. print("To nie jest palindrom")

Przykład działania:

Podaj wyraz do sprawdzenia, czy jest palindromem: sos
Palindrom

Znajdowanie tekstu w tekście

Istnieją dwie metody obiektów typu str, pierwsza z nich to find:

Listing 10
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.find("tekst"))

Metoda ta zwraca -1, gdy nie znaleziono wystąpienia elementu w tekście. Druga metoda już tak przyjemnego oznaczenia nie zwraca i jest to metod index:

Listing 11
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.index("tekst"))

Wynik działania powyższego kodu jest taki sam jak poprzedniego.

Wynik działania powyższego kodu:

6

Zamiana liter na duże

Istnieje wewnętrzna metoda obiektów typu str, która zamienia małe litery na duże:

Listing 12
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.upper())

Wynik działania powyższego kodu:

JAKIŚ TEKST PRZYKŁADOWY

Zamiana liter na małe

Istnieje wewnętrzna metoda obiektów typu str, która zamienia małe litery na małe:

Listing 13
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.lower())

Wynik działania powyższego kodu:

jakiś tam przykładowy tekst

Zamiana pierwszych liter wyrazów na duże

Istnieje wewnętrzna metoda obiektów typu str, która zamienia pierwsze litery wszystkich wyrazów na dóże:

Listing 14
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.title())

Wynik działania powyższego kodu:

Jakiś Tam Przykładowy Tekst

Zliczanie liczby wystąpień tekstu w tekście

Istnieje wewnętrzna metoda obiektów typu str, która zwraca ile razy dany tekst mieści się w tekście:

Listing 15
  1. tekst = "Jakiś tekst przykładowy"
  2. print(tekst.count("tekst"))

Wynik działania powyższego kodu:

1

Wypośrodkowanie tekstu

Istnieje wewnętrzna metoda obiektów typu str, która wypośrodkowuje tekst:

Listing 16
  1. tekst = "Jakiś tam przykładowy tekst"
  2. print(tekst.center(70)) # liczba 70 oznacza liczbę znaków dla pojedynczej linii tekstu

Wynik działania powyższego kodu:

                     Jakiś tam przykładowy tekst

Zamiana tekstu w tekście

Istnieje wewnętrzna metoda obiektów typu str, która umożliwia podmianę wystąpienia danego tekstu w innym tekście:

Listing 17
  1. tekst = "Jakiś tam przykładowy text"
  2. print(tekst.replace("text", "tekst")

Wynik działania powyższego kodu:

Jakiś tam przykładowy tekst

Formatowanie tekstu

Formatowanie w stylu wersji Pythona < 3.0

Listing 18
  1. name = input("Podaj imię: ")
  2. surname = input("Podaj nazwisko: ")
  3. age = int(input("Podaj wiek: "))
  4. weight = float(input("Podaj wagę [kg]: "))
  5. print("%s\nImię: %s\nNazwisko: %s\n%s\nWiek: %3d\nWaga [kg]: %5.1f"%("="*70,name, surname, "=" * 70, age, weight))

W powyższym kodzie użyto następujących znaczników:

  • \n - znacznik łamania linii tekstu;
  • %s - znacznik wstawiania tekstu;
  • %3d - znacznik wstawiania do tekstu wartości liczbowej całkowitej (to mówi oznaczenie d), natomiast cyfra przed tymże oznaczeniem mówi ile znaków zostanie zarezerwowane na wyświetlenie liczby (w tym przypadku 3);
  • %5.1f - znacznik wstawiania do tekstu wartości liczbowej zmiennoprzecinkowej (to mówi oznaczenie f), natomiast cyfra przed znakiem . mówi ile miejsca ma być zarezerwowane na liczbą, natomiast cyfra po . mówi ile miejsc ma być zarezerwowanych na liczby po przecinku.

Przykładowy wynik działania kodu:

Podaj imię: Jan
Podaj nazwisko: Kowalski
Podaj wiek: 80
Podaj wagę [kg]: 70.7
===================================================================
Imię: Jan
Nazwisko: Kowalski
===================================================================
Wiek:  80
Waga [kg]:  70.7

Formatowanie w stylu wersji Pythona >= 3.0

Listing 19
  1. name = input("Podaj imię: ")
  2. surname = input("Podaj nazwisko: ")
  3. age = int(input("Podaj wiek: "))
  4. weight = float(input("Podaj wagę [kg]: "))
  5. print("{line}\nImię: {name}\nNazwisko: {surname}\n{line}\nWiek: {age:3d}\nWaga [kg]: {weight:5.1f}".format(line="="*70,name=name, surname=surname, age=age, weight=weight))

Wstawianie znaków specjalnych

W tekście można wstawiać następujące znaczniki znaków specjalnych:

  • \n - znacznik nowej linii;
  • \t - znacznik tabulatora;
  • \" - znacznik wstawiania cudzysłowu;
  • \' - znacznik wstawiania apostrofu;

Komentarze