Formatowanie ciągu w Pythonie – jak sformatować ciąg?

Formatowanie ciągów umożliwia tworzenie dynamicznych ciągów poprzez łączenie zmiennych i wartości. W tym artykule omówimy około 5 sposobów formatowania ciągu.

Poznasz różne metody formatowania ciągów znaków z przykładami dla lepszego zrozumienia. Przyjrzyjmy się im teraz!

Jak formatować ciągi w Pythonie

Istnieje pięć różnych sposobów formatowania ciągu znaków Pyton

  • Formatowanie za pomocą operatora %.
  • Formatowanie za pomocą metody string format().
  • Formatowanie za pomocą literałów łańcuchowych, zwanych ciągami f.
  • Formatowanie za pomocą klasy szablonów ciągów
  • Formatowanie za pomocą metody string center().

Zobaczymy zatem całość wyżej wymienionych sposobów i skupimy się również na tym, która strategia formatowania ciągów jest najlepsza.

1. Jak sformatować ciąg za pomocą operatora %

Jest to najstarsza metoda formatowania ciągów. Tutaj używamy modulo % operator . Moduł % jest również znany jako operator formatowania ciągu.

Ciąg formatujący Pythona przy użyciu operatora %

W wyrażeniu Parszywy, chudy, bezpański pies %s połknął % „pośpiesznie”, symbol zastępczy %s w ciągu znaków zostaje zastąpiony wartością „pośpiesznie”.

Python3




print> (> 'The mangy, scrawny stray dog %s gobbled down'> %> 'hurriedly'> +> > 'the grain-free, organic dog food.'> )>

Wyjście

The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food. 

Wstrzykiwanie wielu ciągów za pomocą operatora modulo

Tutaj wstawiamy wiele ciągów znaków za pomocą operatora %.

Python3




x> => 'looked'> print> (> 'Misha %s and %s around'> %> (> 'walked'> ,x))>

Wyjście

Misha walked and looked around 

Precyzyjna obsługa w Pythonie przy użyciu operatora %

Liczby zmiennoprzecinkowe korzystają z formatu %a.bf . Tutaj, A byłaby minimalną liczbą cyfr występujących w ciągu; mogą one zostać uzupełnione spacjami, jeśli cała liczba nie ma tylu cyfr.

Blisko tego, chłopak określa, ile cyfr ma zostać wyświetlonych po przecinku dziesiętnym.

W tym kodzie ciąg „Wartość pi to: %5.4f” zawiera specyfikator formatu %5.4f. Specyfikator formatu %5.4f służy do formatowania liczby zmiennoprzecinkowej o minimalnej szerokości 5 i dokładności do 4 miejsc po przecinku.

Python3




print> (> 'The value of pi is: %5.4f'> %> (> 3.141592> ))>

Wyjście

The value of pi is: 3.1416 

Wiele typów konwersji formatów

W podanym kodzie ciąg formatujący Python jest konwertowany na liczbę całkowitą i zmiennoprzecinkową za pomocą %d,%f.

Python3




variable> => 12> string> => 'Variable as integer> => %> d > Variable as> float> => %> f'> %> (variable, variable)> print> (string)>

Wyjście

Variable as integer = 12 Variable as float = 12.000000 

Notatka: Aby dowiedzieć się więcej na temat formatowania %, zobacz Formatowanie ciągu w Pythonie przy użyciu%

2. Jak sformatować ciąg za pomocą metody format().

Metoda formatowania(). został wprowadzony w Pythonie 3 w celu wydajniejszej obsługi złożonego formatowania ciągów.

Formatery działają poprzez wstawienie jednego lub większej liczby pól zastępczych i obiektów zastępczych zdefiniowanych przez parę nawiasów klamrowych { } do ciągu znaków i wywołanie metody str.format() . Wartość, którą chcemy umieścić w symbolach zastępczych i połączyć z ciągiem znaków przekazanym jako parametry do funkcji formatu.

Składnia: „Tutaj ciąg znaków {}, a następnie także {}”.format(„coś1′,„coś2”)

Formatowanie String w Pythonie przy użyciu metody format().

Ten kod wykorzystuje {} jako symbol zastępczy, a następnie wywołaliśmy metodę.format() na „równym” symbolu zastępczym.

Python3




print> (> 'We all are {}.'> .> format> (> 'equal'> ))>

Wyjście

We all are equal. 

Wstawianie oparte na indeksie

W tym kodzie nawiasy klamrowe {} z indeksami są używane w ciągu „{2} {1} {0}” w celu wskazania pozycji, w których zostaną umieszczone odpowiednie wartości.

Python3




print> (> '{2} {1} {0}'> .> format> (> 'directions'> ,> > 'the'> ,> 'Read'> ))>

Wyjście

Read the directions 

Wstaw obiekt poprzez przypisanie słów kluczowych

W tym kodzie nawiasy klamrowe {} z nazwanymi symbolami zastępczymi ({a}, {b}, {c}) są używane w ciągu „a: {a}, b: {b}, c: {c}”, aby wskazać pozycje, w których zostaną umieszczone odpowiednie nazwane argumenty.

Python3




print> (> 'a: {a}, b: {b}, c: {c}'> .> format> (a> => 1> ,> > b> => 'Two'> ,> > c> => 12.3> ))>

Wyjście

a: 1, b: Two, c: 12.3 

Wykorzystaj ponownie wstawione obiekty

W tym kodzie nawiasy klamrowe {} z nazwanymi symbolami zastępczymi ({p}) są użyte w ciągu znaków. 'Pierwsze {p} było w porządku, ale {p} {p} było trudne.' argument p zostanie umieszczony.

Python3




print> (> > 'The first {p} was alright, but the {p} {p} was tough.'> .> format> (p> => 'second'> ))>

Wyjście

The first second was alright, but the second second was tough. 

Dokładność pływakowa za pomocą metody.format().

Składnia: {[indeks]:[szerokość][.precyzja][typ]}

Typu można używać z kodami formatu:

  • 'D' dla liczb całkowitych
  • 'F' dla liczb zmiennoprzecinkowych
  • 'B' dla liczb binarnych
  • „O” dla liczb ósemkowych
  • 'X' dla liczb ósemkowych w formacie szesnastkowym
  • 'S' dla sznurka
  • 'To jest' dla liczb zmiennoprzecinkowych w formacie wykładniczym

Przykład:

Oba kody wykonują formatowanie ciągu. Pierwszy ciąg jest sformatowany za pomocą „%”, a drugi ciąg za pomocą .format().

Python3




print> (> 'The valueof pi is: %1.5f'> %> 3.141592> )> print> (> 'The valueof pi is: {0:1.5f}'> .> format> (> 3.141592> ))>

Wyjście

The valueof pi is: 3.14159 The valueof pi is: 3.14159 

Notatka: Aby dowiedzieć się więcej o str.format(), zobacz format() w Pythonie

3. Zrozumienie łańcucha f Pythona

W PEP 498 wprowadzono nowy mechanizm formatowania ciągów znaków znany jako interpolacja ciągów literalnych lub częściej jako Struny F (ze względu na wiodący znak f poprzedzający literał ciągu). Ideą f-String w Pythonie jest uproszczenie interpolacji ciągów.

Aby utworzyć ciąg f w Pythonie, poprzedź ciąg literą f. Sam ciąg znaków można sformatować w podobny sposób, jak w przypadku ul. format() . Struny F zapewniają zwięzły i wygodny sposób osadzania wyrażeń Pythona w literałach łańcuchowych w celu formatowania.

Formatowanie ciągów za pomocą ciągów F

W tym kodzie f-string fNazywam się {name}. służy do interpolacji wartości zmiennej name w ciągu znaków.

Python3




name> => 'Ele'> print> (f> 'My name is {name}.'> )>

Wyjście

My name is Ele. 

Ta nowa składnia formatowania jest bardzo wydajna i łatwa. Możesz także wstawiać dowolne wyrażenia Pythona, a nawet wykonywać w nim operacje arytmetyczne.

Operacje arytmetyczne na łańcuchach F

W tym kodzie f-string f Powiedział, że jego wiek to {2 * (a + b)}. służy do interpolacji wyniku wyrażenia 2 * (a + b) do ciągu znaków.

Python3




a> => 5> b> => 10> print> (f> 'He said his age is {2 * (a + b)}.'> )>

Wyjście

He said his age is 30. 

Możemy również skorzystać lambda wyrażenia w ciąg f formatowanie.

Wyrażenia lambda wykorzystujące ciągi F

W tym kodzie anonimowa funkcja lambda jest zdefiniowana przy użyciu lambda x: x*2. Ta funkcja lambda przyjmuje argument x i zwraca jego wartość podwójną.

Python3




print> (f> 'He said his age is {(lambda x: x*2)(3)}'> )>

Wyjście

He said his age is 6 

Precyzja pływakowa w metodzie f-String

W tym kodzie formatowanie f-string służy do interpolacji wartości zmiennej num w ciągu.

  Syntax  : {value:{width}.{precision}} 

Python3




num> => 3.14159> print> (f> 'The valueof pi is: {num:{1}.{5}}'> )>

Wyjście

The valueof pi is: 3.1416 

Notatka: Aby dowiedzieć się więcej na temat f-stringów, zobacz f-stringi w Pythonie

4. Klasa szablonów stringów w Pythonie

W module String klasa szablonów pozwala nam stworzyć uproszczoną składnię specyfikacji wyjściowej. W formacie używane są nazwy zastępcze utworzone przez $ z prawidłowym językiem Python identyfikatory (znaki alfanumeryczne i podkreślenia). Otoczenie symbolu zastępczego nawiasami klamrowymi umożliwia umieszczenie po nim większej liczby liter alfanumerycznych bez spacji. Zapisanie $$ tworzy pojedynczy znak ucieczki $:

Formatowanie łańcucha w Pythonie przy użyciu klasy szablonu

Ten kod importuje klasę Template z modułu string. Klasa Template pozwala nam utworzyć ciąg szablonowy z symbolami zastępczymi, które można zastąpić rzeczywistymi wartościami. Tutaj podstawiamy wartości n1 i n2 zamiast n3 i n4 w ciągu n.

Python3




from> string> import> Template> n1> => 'Hello'> n2> => 'techcodeview.com'> n> => Template(> '$n3 ! This is $n4.'> )> # and pass the parameters into the> # template string.> print> (n.substitute(n3> => n1, n4> => n2))>

Wyjście

Hello ! This is techcodeview.com. 

Notatka: Aby dowiedzieć się więcej o klasie String Template, zobacz Klasa szablonu ciągu w Pythonie

5. Jak sformatować ciąg za pomocą metody center().

Metoda center() to metoda wbudowana w klasę str Pythona, która zwraca nowy ciąg znaków wyśrodkowany w ciągu o określonej szerokości.

Formatowanie ciągu przy użyciu metody center().

Ten kod zwraca nowy strunowy uzupełnione spacjami po lewej i prawej stronie.

Python3




string> => 'GeeksForGeeks!'> width> => 30> centered_string> => string.center(width)> print> (centered_string)>

Wyjście

 GeeksForGeeks! 

Ciąg formatujący Pythona: % vs. .format vs. literał f-string

struny f są szybsze i lepsze niż oba formatowanie % I str.format() . Wyrażenia f-string są oceniane w czasie wykonywania i możemy także osadzać wyrażenia w f-stringu, używając bardzo prostej i łatwej składni.

Wyrażenia wewnątrz nawiasów są oceniane w czasie wykonywania, a następnie łączone z ciągiem znaków f-string, po czym zwracany jest końcowy ciąg.

Notatka: Użyj Template String, jeśli ciąg jest ciągiem dostarczonym przez użytkownika. W przeciwnym razie użyj f-Strings, jeśli używasz Pythona 3.6 lub nowszego, i. format() , jeśli tak nie jest.

Omówiliśmy wszystkie 5 sposobów formatowania ciągów w Pythonie. Dla każdej metody istnieje wiele przypadków użycia i przykładów. Porównaliśmy także te metody, aby określić, która z nich jest najskuteczniejsza w rzeczywistych projektach.

Podobne lektury:

  • Formatowanie ciągów w Pythonie
  • Jak używać formaterów ciągów w Pythonie
  • Jak sformatować ciąg znaków za pomocą słownika w Pythonie