Python String format() Обяснете с ПРИМЕРИ

Какво е Python Формат на низ ()?

Python Формат на низ () е функция, използвана за заместване, заместване или преобразуване на низа с контейнери с валидни стойности в крайния низ. Това е вградена функция на Python клас низ, който връща форматирания низ като изход. Заместителите вътре в низа са дефинирани във къдрави скоби.

Например „Добре дошли в Guru99 {}“.format('value here').

Синтаксис на функцията format() в Python

templatestring.format(val1, val2...)

параметри

val1, val2 … : Стойностите, които трябва да се заменят в дадения шаблонен низ, който има контейнери под формата на фигурни скоби {}. Заместителите могат да бъдат низ, двойка ключ/стойност, цели числа, числа с плаваща запетая, знаци и др.

Върната стойност

Той ще върне последния низ с валидни стойности, заменени на мястото на запазените места, дадени във къдрави скоби.

Заместители

Заместителите в шаблонния низ са представени с помощта на къдрави скоби, напр. {}. Контейнерът може да е празен {} или може да има променлива за например {име} или може да има числов индекс, например {0}, {1} и т.н.

Как работи string format()?

- Python Формат на низ () ще сканира оригиналните низове за контейнери. Заместителите могат да бъдат празни къдрави скоби ({}), позиционни аргументи, т.е. низът може да има заместители с индекс 0, 1 за например {0}, {1} и т.н.

За аргументи на ключови думи името на променливата ще присъства във фигурните скоби за например {name}, {age}. В случай на празни фигурни скоби, стойностите от формата ще бъдат заменени последователно във фигурните скоби.

Първата стойност ще бъде заменена с първата празна къдрава скоба, последвана от следващата. За позиционни аргументи индексът ще започва от 0 и така нататък. Стойностите ще бъдат налични във формат, разделени със запетаи и 0th value ще сочи към първата стойност във формат и т.н.

За аргументи на ключови думи, т.е. когато използвате променлива във вашите заместители, можете да имате реда на стойностите във формата, както ви е необходимо.

Редът няма значение тук, тъй като стойностите ще бъдат заменени въз основа на името на променливата, присъстващо във format(). Ето няколко примера за това как да използвате контейнери в низ като празни, позиционни и с помощта на ключови думи или променливи.

Пример: празен контейнер, заменен със стойност на низ

В примера по-долу низът има празни къдрави скоби ({}). Стойността, дадена на формата, ще бъде заменена във фигурните скоби ({}).

Стойността, която искаме да бъде заменена, е низ.

Пример:

Използване на форматиране на низове в Python, искаме фигурните скоби ({}) да бъдат заменени със стойност на низ. Стойността се дава на format(“Guru99”). При изпълнение, фигурните скоби {} се заменят с Guru99 и ще получите последния низ като Добре дошли в уроците на Guru99.

print ("Welcome to {} tutorials".format("Guru99"))

Изход:

Welcome to Guru99 tutorials

Пример: празен контейнер, заменен с числова стойност

В примера по-долу искаме числовата стойност да бъде заменена в оригиналния низ. Къдравите скоби ({}) се добавят към мястото, където се нуждаете от числовата стойност. Когато се изпълни, празните къдрави скоби ({}) се заменят с числовата стойност.

Пример:

Можете също да използвате format(), за да вмъкнете числа във вашия низ. Примерът ще покаже как да замените празния контейнер {} с номер 99, присъстващ във format().

print ("Welcome to Guru{} Tutorials".format("99"))

Изход:

Welcome to Guru99 Tutorials

Пример: Използване на аргументи на променлива или ключова дума в контейнера

Също така е възможно да се използват променливи във фигурните скоби, както е показано в примера по-долу. Променливите са дефинирани във format(). Следователно, когато се изпълнява, стойността, присвоена на променливата, се заменя в оригиналния низ.

Пример:

Можете да използвате променливи във къдрави скоби, например {name} {num}. Стойностите за променлива name и num са налични във формат, т.е. format(name=”Guru”, num=”99″). Стойностите, дадени на name и num, ще бъдат заменени вътре в {name} и {num}.

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

Изход:

Welcome to Guru99 Tutorials

Пример: Използване на индексни или позиционни аргументи вътре в контейнера

Стойностите могат да бъдат заменени с помощта на индекси като 0, 1, 2 вътре в контейнерите. Стойността ще бъде избрана по ред от format(), както е показано в примера по-долу.

Пример:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

Изход:

Welcome to Guru99 Tutorials

Пример: Използване на множество контейнери в низ

В този пример ще използваме множество празни контейнери.

Пример:

Низът, използван в примера, има няколко празни контейнера и всеки контейнер ще препраща към стойност във format(). Първата стойност ще бъде заменена с първия контейнер и така нататък.

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

Изход:

Guru99 is totally new kind of learning experience!

Форматиране вътре в контейнери

Видяхте, че е възможно да имате Placeholder като празен, с променлива или индекс. Също така е възможно да кандидатствате Python Форматиране на низ вътре в контейнера.

Ето списъка с формати

формат Descriptйон Пример
:d Той ще даде изхода в десетичен формат, когато се използва вътре в контейнера print("The binary to decimal value is : {:d}".format(0b0011))

Изход:

The binary to decimal value is  : 3
:b Той ще даде изхода в двоичен формат, когато се използва вътре в контейнера print("The binary value is : {:b}".format(500))

Изход:

The binary value is : 111110100
:e Той ще даде резултата в научен формат, когато се използва вътре в контейнера, показателят e в резултата ще бъде с малки букви. print("The scientific value is : {:e}".format(40))

Изход:

The scientific format value is : 4.000000e+01
:E Той ще даде изхода в научен формат, когато се използва вътре в контейнера, показателят E в изхода ще бъде с главни букви print("The scientific value is : {:E}".format(40))

Изход:

The scientific value is : 4.000000E+01
:f Това ще изведе числов формат с фиксирана запетая. По подразбиране ще получите произволно число с шест знака след десетичната запетая. В случай, че имате нужда от до 2 знака след десетичната запетая, използвайте го като. 2f т.е. точка (.) пред 2f print("The value is : {:f}".format(40))

Изход:

The value is  : 40.000000

Пример: Показване на изход до 2 знака след десетичната запетая.

print("The value is : {:.2f}".format(40))

Изход:

The value is: 40.00
:o Това ще изведе осмичен формат print("The value is : {:o}".format(500))

Изход:

The value is  : 764
:x Това ще изведе шестнадесетичен формат с малки букви print("The value is : {:x}".format(500))

Изход:

The value is  : 1f4
:X Това ще изведе шестнадесетичен формат с главни букви. print("The value is : {:X}".format(500))

Изход:

The value is  : 1F4
:n Това ще изведе числов формат. print("The value is : {:n}".format(500.00))

Изход:

The value is  : 500
:% Това ще даде резултата в процентен формат.
По подразбиране ще даде 6 знака след десетичната запетая за изходния процент, в случай че не искате десетична стойност, можете да използвате точка с 0, т.е. (:.0%).
print("The value is : {:%}".format(0.80))

Изход:

The value is  : 80.000000%

Този пример показва как да пропуснете десетичните знаци, като използвате {:.0%} вътре в контейнера.

print("The value is : {:.0%}".format(0.80))
Изход:

The value is: 80%
:_ Това ще изведе долна черта като разделител за хиляди. Предлага се от python 3.6+. print("The value is {:_}".format(1000000))

Изход:

The value is  : 1_000_000
:, Това ще изведе запетая като разделител на хиляди print("The value is : {:,}".format(1000000))

Изход:

The value is  : 1,000,000

Добавя се запетая(,) като разделител за хиляди, както е показано в изхода.

: Това ще добави интервал преди всички положителни числа Този пример показва как да добавите интервал или подложка преди даденото число. Числото 5 показва броя на интервалите, който искате преди числото.

print("The value is: {:5}".format(40))

Изход:

The value is:    40
:- Това ще добави знак минус преди отрицателните числа Примерът показва как да получите изход със знак минус (-) преди числото с помощта на {:-}.

print("The value is: {:-}".format(-40))

Изход:

The value is: -40
:+ Можете да използвате знак плюс, за да посочите, че числото е положително Примерът показва как да получите изход със знак плюс (+) преди числото с помощта на {:+}.

print("The value is: {:+}".format(40))

Изход:

The value is: +40
:= Равно на се използва за поставяне на знака +/- от лявата страна. Примерът показва как да получите изхода със знак плюс (+/-) преди знака за равенство с помощта на {:=}.

print("The value is {:=}".format(-40))

Изход:

The value is -40
:^ Това ще центрира крайния резултат Примерът показва използването на {:^} за центриране на текста. Числото 10 се използва за добавяне на 10 интервала, за да се покаже подравненото в центъра, когато стойността се замени.

print("The value {:^10} is positive value".format(40))

Изход:

The value     40     is a positive value

Тук можете да използвате 10, което ще добави 10 интервала в крайния текст, а стойността, която ще бъде заменена, ще бъде подравнена в центъра между 10-те интервала. Интервалите от 10 се добавят само за да се покаже централното подравняване на заменената стойност.

:> Това ще подравни крайния резултат вдясно Интервалът от 10 се добавя с помощта на (:>10), а заменената стойност е подравнена вдясно.

print("The value {:>10} is positive value".format(40))

Изход:

The value         40 is positive value
:< Това ще подравни крайния резултат вляво Интервалът от 10 се добавя с помощта на (:<10), а заместваната стойност е подравнена вляво.

print("The value {:<10} is positive value".format(40))

Изход:

The value 40         is positive value

Използване на клас с format()

В този пример създаваме клас и използваме обекта на класа вътре в .format Python метод. Заместителите ще препращат към свойства на клас или членове, използващи обекта на класа.

Пример:

Класът се извиква във формат (c=MyClass()). Обектът c ще има препратка към свойствата и методите в класа MyClass().

class MyClass:
    msg1="Guru"
    msg2="Tutorials"   

print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

Изход:

Welcome to Guru99 Tutorials!

Използване на речник с format()

Също така е възможно да се използва речник в format(), както е показано в примера по-долу:

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

Изход:

Welcome to Guru99 Tutorials!

Подплатени замествания на променливи

Използвайки метода string.format(), можете да добавите подложка, интервал, като използвате контейнери във вашия низ.

Пример:

В примера по-долу ще добавите място вътре в Placeholder с помощта на format(). За да добавите интервал, трябва да посочите броя на интервалите във фигурните скоби след двоеточието (:). Така контейнерът ще изглежда като {:5}.

print("I have {:5} dogs and {:5} cat".format(2,1))

Изход:

I have     2 dogs and     1 cat

Можете също да зададете индекса вътре в контейнера, например: {0:5}, където 0 ще се отнася до първата стойност във формата.

print("I have {0:5} dogs and {1:5} cat".format(2,1))

Изход:

I have     2 dogs and     1 cat

Oбобщение

  • Python string class ни дава важна вградена команда, наречена format(), която ни помага да заменим, заместим или конвертираме низа с контейнери с валидни стойности в крайния низ.
  • Заместителите вътре в модула за низове Python са дефинирани във къдрави скоби, напр. „Добре дошли в Guru99 {}“.format('стойност тук').
  • Контейнерът може да е празен {} или може да има променлива за например {име} или може да има числов индекс, например {0}, {1} и т.н.
  • Можете да използвате форматирането на низове в Python вътрешни контейнери, които могат да помогнат за добавяне на подложки, централно подравняване и също така да помогнат при форматирането на числа.

Обобщете тази публикация с: