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 знака след десетичната запетая.
Изход: 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%} вътре в контейнера.
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 показва броя на интервалите, който искате преди числото.
Изход: The value is: 40 |
:- |
Това ще добави знак минус преди отрицателните числа | Примерът показва как да получите изход със знак минус (-) преди числото с помощта на {:-}.
Изход: The value is: -40 |
:+ |
Можете да използвате знак плюс, за да посочите, че числото е положително | Примерът показва как да получите изход със знак плюс (+) преди числото с помощта на {:+}.
Изход: The value is: +40 |
:= |
Равно на се използва за поставяне на знака +/- от лявата страна. | Примерът показва как да получите изхода със знак плюс (+/-) преди знака за равенство с помощта на {:=}.
Изход: The value is -40 |
:^ |
Това ще центрира крайния резултат | Примерът показва използването на {:^} за центриране на текста. Числото 10 се използва за добавяне на 10 интервала, за да се покаже подравненото в центъра, когато стойността се замени.
Изход: The value 40 is a positive value Тук можете да използвате 10, което ще добави 10 интервала в крайния текст, а стойността, която ще бъде заменена, ще бъде подравнена в центъра между 10-те интервала. Интервалите от 10 се добавят само за да се покаже централното подравняване на заменената стойност. |
:> |
Това ще подравни крайния резултат вдясно | Интервалът от 10 се добавя с помощта на (:>10), а заменената стойност е подравнена вдясно.
Изход: The value 40 is positive value |
:< |
Това ще подравни крайния резултат вляво | Интервалът от 10 се добавя с помощта на (:<10), а заместваната стойност е подравнена вляво.
Изход: 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 вътрешни контейнери, които могат да помогнат за добавяне на подложки, централно подравняване и също така да помогнат при форматирането на числа.
