Różne sposoby formatowania ciągów w Pythonie: 3 najlepsze metody

Opublikowany: 2021-02-23

Formatowanie ciągów jest podstawową funkcją w językach programowania do formatowania lub wstawiania wartości i pozycji określonych przez użytkownika w ciągach. Język C miał na to jeden sposób, który możesz znać, jeśli masz jakieś doświadczenie z językiem C. Python obsługuje jednak nie 1, nie 2, ale 3 różne sposoby formatowania ciągów. Każdy sposób ma swoje zalety i wady, które zobaczymy w tym samouczku. Zobaczymy również, która z 3 metod jest najczęściej używana i skuteczna.

Ucz się kursów nauki danych online z najlepszych uniwersytetów na świecie. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Pod koniec tego samouczka poznasz następujące rzeczy:

  • Różne sposoby formatowania ciągów
  • Ich użycie z przykładami
  • Który sposób jest najbardziej preferowany

Spis treści

Różne sposoby formatowania ciągów

Python otrzymuje wiele aktualizacji, aby poprawić formatowanie ciągów. Przyjrzyjmy się każdemu z nich po kolei.

Metoda 1: Formatowanie ciągu w stylu C

Python zawiera stary sposób formatowania ciągów znaków, używając znaków specjalnych dla każdego typu danych. Ta stara dobra metoda formatowania ciągów została przejęta z języka C i nadal jest bardzo skuteczna. Specyfikator formatu ciągu „%”, po którym następuje dedykowany znak dla każdego typu danych, jest używany do formatowania ciągów.

Przeanalizujmy mały przykład, aby to zrozumieć:

liczba = 8
imię = „różowy człowiek”
print("Nazwa to %s, a liczba to %d" %( nazwa, liczba))

#Wyjście
>> „Nazwa to pinkman, a numer to 8”

Jak widać, specyfikator formatu %s został użyty do sformatowania nazwy ciągu, a %d został użyty do sformatowania liczby całkowitej. Podobnie istnieje specyfikator formatu dla zmiennoprzecinkowego. Sprawdźmy też to.

liczba = 4,32
lis = [ 1 , 3 , 5 ]
print( „lista to %s, a float to %f” %(lis, num))

#Wyjście
>> lista to [ 1 , 3 , 5 ] a float to 4.320000

W powyższym przykładzie używam specyfikatora formatu %f do sformatowania wartości zmiennoprzecinkowej. Warto zwrócić uwagę na dwie rzeczy. Po pierwsze, wartość zmiennoprzecinkowa jest wypisywana jako 4,320000, a nie tylko 4,32. Dlaczego tak? Dzieje się tak, ponieważ Python domyślnie używa dokładności do 6 miejsc po przecinku dla elementów zmiennoprzecinkowych. Po drugie, wydrukowałem listę przy użyciu specyfikatora formatu ciągu. Nie oznacza to, że specyfikator formatu %s może przyjmować dowolny typ danych. Po prostu konwertuje go na ciąg i drukuje. Tak więc wypisywana lista jest zasadniczo ciągiem, a nie listą.

W porządku, więc jak określić, ile wymagana jest dokładność przecinka dziesiętnego?

print("lista to %s, a zmiennoprzecinkowa z dokładnością do 2 punktów to %.2f" %(lis, num))

#Wyjście
>> lista to [ 1 , 3 , 5 ] a float to 4.32

Inną kwestią, na którą należy zwrócić uwagę, jest to, że musimy podać zmienne w kolejności, w jakiej są używane w ciągu. Jeśli kolejność zostanie zmieniona, zostanie odpowiednio zmieniony wynik. Alternatywą, by nie wymagać od nas podawania zmiennych w odpowiedniej kolejności za każdym razem, jest użycie formatowania napisów w nieco inny sposób.

print(„lista to %(a)s, a float to %(b)f” %{„b”: num, „a”: lis})

#Wyjście
>> lista to [ 1 , 3 , 5 ] a float to 4.320000

A jak widzisz, pisanie tego jest bardzo kłopotliwe.

Podsumowując, trzy najczęściej używane specyfikatory formatu to:

  1. %s dla ciągów
  2. %d dla liczb całkowitych
  3. %.<dokładność dziesiętna>f dla pływaków

Metoda 2: Nowe formatowanie ciągu w stylu

Python 3 wprowadził lepszy sposób formatowania ciągów za pomocą metody format() na ciągach. Symbol zastępczy jest używany przez umieszczenie nawiasów klamrowych, a metoda format zawiera zmienne, które należy umieścić w tych pozycjach w ciągu. Spójrzmy na mały przykład, aby to zrozumieć.

nazwa = „skyler”
print("Cześć, nazywam się {}".format(imię))

#Wyjście
>> Cześć, nazywam się skyler

Jest to znacznie lepsze niż formatowanie w starym stylu, które widzieliśmy powyżej. Nawiasy klamrowe pełnią rolę symbolu zastępczego nazwy zmiennej zawierającej ciąg. Zauważ, że przy metodzie format nie musimy określać typu danych zmiennej, jak to zrobiliśmy w formatowaniu w starym stylu.

Przykład z liczbami również:

liczba = 3
int = 4,34
imię = „Jessy”

print( „Cześć, nazywam się {}, number to {}, a float to {}” .format(name, num, int))

#Wyjście
>> Cześć, mam na imię jessy , numer to 3 , a float to 4,34

Schludny! Jak widać, wymaga, aby zmienne były przekazywane do metody format w kolejności, w jakiej zostały użyte w ciągu. Inny sposób wykorzystania metody format, polegający na tym, że nie wymagamy od nas przekazywania wszystkich zmiennych we właściwej kolejności:

print("Cześć, mam na imię {imię}, numer to {num}, a float to {int}".format(int=int, num=num , name=name))

#Wyjście
>> Cześć, mam na imię jessy , numer to 3 , a float to 4,34

W powyższym przykładzie widzimy, że gdy zmienne są wyraźnie wymienione w symbolach zastępczych, to konieczność przekazywania ich do metody format we właściwej kolejności nie jest już wymagana.

Możemy również przekazać pozycję zmiennej w symbolach zastępczych, aby lepiej je śledzić.

print("Cześć, mam na imię {0}, liczba to {1}, a liczba zmiennoprzecinkowa to {2}".format(name, num, int))

#Wyjście
>> Cześć, mam na imię jessy , numer to 3 , a float to 4,34

Metoda 3: Używanie F-Strings

Wprowadzone w Pythonie 3.6 f-strings jest najłatwiejszym i najbardziej wydajnym sposobem formatowania łańcuchów. Są one również nazywane sformatowanymi literałami ciągów. Używają literału f na początku ciągu, aby powiedzieć pythonowi, aby traktował go jako sformatowany ciąg. Symbole zastępcze zawierają rzeczywiste zmienne, które należy umieścić w tej pozycji.

Spójrzmy na przykład.

nazwa = „heisenberg”
bill = 100.43print(f”Nazwa to {name}, a rachunek to {bill}”)

#Wyjście
>> Nazywa się heisenberg , a rachunek to 100,43

To było całkiem proste. Co więcej, możemy również umieszczać wyrażenia bezpośrednio zamiast zmiennych.

a = 5
b = 8

print( f”Suma to {a+b} )

#Wyjście
>> Suma to 13

Możemy również wywoływać funkcje bezpośrednio i uzyskać ich wynik w literałach łańcuchowych.

print( f”Nazwa to {nazwa.upper()} )

#Wyjście
>> Nazywa się HEISENBERG

Co więcej, możemy użyć ciągów f, aby bezpośrednio zwrócić wartość również z funkcji.

def sumator (imię, wiek, pieniądze):
return f”{imię} jest w wieku {wiek} i ma pensję {pieniądze}”

Saul Goodman ma 45 lat i ma pensję 2000000

Jak widzimy, gdy przekazujemy funkcje bezpośrednio do symboli zastępczych, wywołuje funkcje i bezpośrednio umieszcza dane wyjściowe w nawiasach klamrowych. Oczywiście ta metoda formatowania ciągów jest najbardziej wydajna i łatwa do napisania.

Zamówienie: Pytania i odpowiedzi dotyczące wywiadu w Pythonie

Zanim pójdziesz

Formatowanie ciągów jest zwykłym zadaniem, a sposób, w jaki Python wprowadził metodę format oraz f strings, bardzo ułatwia osobom pracującym z Pythonem. F-strings są najczęściej używanym i preferowanym sposobem pracy z formatowaniem ciągu, ponieważ bardzo ułatwia pisanie i konserwację. Dodatkowo sprawia, że ​​kod jest również bardziej Pythonowy! Pod maską ciągi f używają protokołu __format__. Literał f to po prostu cukier składniowy, który python oferuje swoim użytkownikom, aby ułatwić nam pisanie formatowania ciągów.

Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science , który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Które metody formatowania w Pythonie 3 umożliwiają wielokrotne podstawienia i formatowanie wartości?

1. Wbudowana w Pythonie metoda string format() przekształca dostarczony łańcuch w bardziej użyteczny wynik. Funkcja format() w Python3 jest jedną z metod formatowania ciągów znaków, która umożliwia wielokrotne podstawienie, a także formatowanie wartości. Metoda format() wykorzystuje formatowanie pozycyjne do łączenia elementów w ciągu.
2. Ciąg można sformatować za pomocą wielu par nawiasów klamrowych. Jeśli wymagana jest inna zamiana zmiennej w długim ciągu, można dodać drugi zestaw nawiasów klamrowych i przekazać drugą wartość do procedury.
3. Funkcja format() w Pythonie przyjmuje dowolną liczbę parametrów. Jednak jest on przede wszystkim podzielony na następujące dwa rodzaje parametrów.
a. Parametry pozycyjne to lista parametrów, które można pobrać, umieszczając indeks parametru w nawiasach klamrowych (indeks).
b. Parametry słów kluczowych — jest to lista parametrów klucz=wartość, do których można uzyskać dostęp za pomocą klucza parametru w nawiasach klamrowych.
4. Metoda format() zwraca ciąg, który został sformatowany. Funkcja format() odczytuje typ dostarczonych jej argumentów i formatuje je zgodnie z kodami formatu w ciągu.

Jak drukować bez znaku nowej linii w Pythonie 3?

Dodaj dodatkowy argument do metody drukowania w Pythonie 3, aby poinformować komputer, że nie chcesz, aby następny ciąg znajdował się w nowej linii. Rozważ następujący scenariusz.
print('Witaj!', end = ')
W takim przypadku w tym samym wierszu pojawi się każda kolejna funkcja drukowania.

Czy w Pythonie możemy przekonwertować ciąg na pływający?

1. Są to obiekty łańcuchowe, jeśli uzyskamy wartość zmiennoprzecinkową poprzez dane wejściowe użytkownika za pośrednictwem terminala, a także odczytanie jej z pliku. W rezultacie musimy jawnie przekonwertować je na zmiennoprzecinkowe, aby przeprowadzić niezbędne operacje, takie jak dodawanie, mnożenie i tak dalej.
2. Metoda float() w Pythonie może być użyta do konwersji ciągu znaków na float. Jest to wbudowana funkcja do konwersji liczby zmiennoprzecinkowej na obiekt. Wewnętrznie funkcja float() wywołuje funkcję __float__() dostarczonego obiektu.