Formatowanie ciągów znaków w Python

Aby upewnić się, że ciąg jest wyświetlany zgodnie z oczekiwaniami, możemy użyć format() Metoda formatuje wynik.

format() stringu

format() Metoda pozwala na formatowanie wybranej części ciągu.

Czasami część tekstu jest niekontrolowana, może pochodzić z bazy danych lub wprowadzenia użytkownika?

Aby kontrolować takie wartości, dodaj zamiennik (nawiasy kwadratowe) do tekstu: {}),a następnie uruchom wartości za pomocą metody format():

Przykład

Dodaj zamiennik, aby wyświetlić cenę:

price = 52
txt = "Cena wynosi {} dolarów"
print(txt.format(price))

Uruchomienie przykładu

Możesz dodać parametry w nawiasach kwadratowych, aby określić, jak wartość ma być przekształcona:

Przykład

Formatuj cenę na liczbę z dwoma miejscami po przecinku:

txt = "Cena wynosi {:.2f} dolarów"

Uruchomienie przykładu

Zobacz wszystkie typy formatowania w dokumentacji format() stringu.

Wiele wartości

Jeśli potrzebujesz więcej wartości, dodaj je do metody format():

print(txt.format(price, itemno, count))

Dodaj więcej占位符:

Przykład

quantity = 3
itemno = 567
price = 52
myorder = "Chcę {} sztuk produktu o numerze {} za {:.2f} dolarów."
print(myorder.format(quantity, itemno, price))

Uruchomienie przykładu

numer indeksu

Możesz użyć numeru indeksu (nawiasy kwadratowe {0} upewnić się, że wartości są umieszczone w odpowiednich znacznikach zamiennych:

Przykład

quantity = 3
itemno = 567
price = 52
myorder = "Chcę {0} sztuk numeru {1} za {2:.2f} dolarów."
print(myorder.format(quantity, itemno, price))

Uruchomienie przykładu

Jeśli chcesz wielokrotnie odnosić się do tego samego wartości, użyj numeru indeksu:

Przykład

age = 63
name = "Bill"
txt = "Jego imię to {1}. {1} ma {0} lat."
print(txt.format(age, name))

Uruchomienie przykładu

Indeks nazwany

Możesz również użyć liczby w nawiasach kwadratowych {carname} Wprowadź nazwę, aby użyć indeksu nazwanego, ale podczas przekazywania wartości parametrów txt.format(carname = "Ford") musisz użyć nazwy:

Przykład

myorder = "Mam {carname}, to {model}."
print(myorder.format(carname = "Porsche", model = "911"))

Uruchomienie przykładu