CodeGym /Kursy /Python SELF PL /Zaawansowana praca z ciągami znaków

Zaawansowana praca z ciągami znaków

Python SELF PL
Poziom 10 , Lekcja 1
Dostępny

9.1 Deklaracje ciągów znaków

W Pythonie ciągi znaków to sekwencje znaków używane do przechowywania i reprezentowania informacji tekstowej. Ciągi znaków można tworzyć na kilka sposobów, co zapewnia elastyczność przy ich deklarowaniu i manipulowaniu (Zmieniać ciągów znaków nie można, jak już wiecie).

Główne sposoby deklarowania ciągów znaków

  1. Pojedyncze cudzysłowy: string = 'Cześć, przyjacielu!'
  2. Podwójne cudzysłowy: string = "Cześć, przyjacielu!"

Oba sposoby są równoważne, wybór zależy od preferencji programisty i od tego, jakie cudzysłowy występują w samym ciągu znaków (żeby uniknąć ich escape'owania).

Ciągi wielowierszowe

Do deklarowania ciągów wielowierszowych używa się potrójnych cudzysłowów. Mogą to być potrójne pojedyncze (''') lub potrójne podwójne cudzysłowy ("""). Taki sposób jest wygodny dla tekstu zajmującego kilka wierszy:


multiline_string = """Pierwsza linia
druga linia
trzecia linia"""
        

Escape'owanie znaków

W Pythonie znaki w ciągach można escape'ować za pomocą odwrotnego ukośnika (\). To pozwala wstawiać specjalne znaki, takie jak nowa linia (\n), tabulacja (\t), czy sam odwrotny ukośnik (\\).


escaped_string = "On powiedział: \"Cześć, przyjacielu!\""
        

Bardziej szczegółowo omówimy escape'owanie na paru kolejnych wykładach.

Surowe ciągi znaków

Surowe ciągi (raw string) — to ciągi, w których escape'owanie znaków jest wyłączone. Deklaruje się je z prefiksem r:


raw_string = r"W tym ciągu znaków \n nie jest traktowany jako nowa linia."
        

Formatowanie ciągów znaków

Python oferuje kilka metod formatowania ciągów znaków. Najpotężniejszą z nich są f-strings, dostępne od Pythona 3.6. Pozwalają one wstawiać wyrażenia Pythona bezpośrednio do ciągu:


name = "Świecie"
formatted_string = f"Cześć, {name}!"
        

Konkatenacja ciągów znaków

Ciągi znaków można tworzyć łącząc kilka ciągów, używając operatora «+» lub metody join() w bardziej złożonych przypadkach:


greeting = "Cześć, " + "przyjacielu!"
        

Niezmienność (immutability) ciągów znaków

Pamiętaj, że ciągi w Pythonie są niezmienne. To oznacza, że wszelkie operacje modyfikujące ciąg faktycznie tworzą nowy ciąg.

9.2 Zagnieżdżone cudzysłowy

W Pythonie, praca z ciągami zawierającymi zagnieżdżone cudzysłowy, wymaga szczególnej uwagi do detali składni, aby zapewnić poprawność kodu i unikać błędów składniowych.

Nie można tak po prostu napisać cudzysłowu wewnątrz tekstu, który jest obramowany cudzysłowami. Na przykład, piszesz kod:


escaped_string = "On powiedział: "Cześć, świecie!"… "
        

A oto co widzi Python:


escaped_string = "On powiedział: "Cześć, świecie!"… "
        

Szuka nie najbliższego cudzysłowu w ciągu, ale następnego. Dlatego, aby dodać cudzysłów wewnątrz tekstu, trzeba się trochę wysilić. Oto przegląd głównych technik i metod zarządzania zagnieżdżonymi cudzysłowami w ciągach Pythona:

Użycie różnych typów cudzysłowów

Python pozwala używać zarówno pojedynczych ('), jak i podwójnych (") cudzysłowów do definiowania ciągów. To daje możliwość zagnieżdżania jednego typu cudzysłowów wewnątrz drugiego:


quote = "He said, 'Hello, world!'"
# lub
quote = 'He said, "Hello, world!"'
        

Escape'owanie cudzysłowów

Gdy trzeba użyć tych samych cudzysłowów wewnątrz ciągu, można skorzystać z odwrotnego ukośnika (\) do escape'owania cudzysłowów:


quote = "He said,\"Hello, world!\" "
        

Ciągi wielowierszowe

Do tworzenia ciągów wielowierszowych zawierających zagnieżdżone cudzysłowy, wygodnie jest używać potrójnych cudzysłowów (''' lub """):


multiline_quote = """To jest długi cytat, który zawiera różne typy cudzysłowów: "podwójne cudzysłowy" i 'pojedyncze cudzysłowy'. Jest rozłożony na wiele linii."""
        
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION