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
matryca lateksowa
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
pamięć rejestracyjna
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:
Dekodowanie JavaScript Base64
- '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)}'>)> |
reżyser Karan Johar
>
>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))> |
pamięć rejestracyjna
>
>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