примеры преобразования объекта в строку
Перейти к контентуSearch for:
Главная » String Python
0
Функция format() в Python используется для преобразования данного объекта в строковое представление на основе спецификаций формата.
Синтаксис функции format():
format(value[, format_spec])
Эта функция вызывает метод __format __() объекта значения. Мы можем определить эту функцию для наших пользовательских классов, чтобы использовать с ними функцию format().
Вот некоторые из вариантов формата чисел:
- Знак «+» следует использовать как с положительными, так и с отрицательными числами.
- Знак «-» следует использовать только с отрицательными числами, это поведение по умолчанию.
- % – умножается на 100 и отображается в процентах.
- ‘b’, ‘o’, ‘x’, ‘X’ – преобразовать целое число в двоичный, восьмеричный и шестнадцатеричный формат. Буквы нижнего регистра будут использоваться для «x», тогда как буквы верхнего регистра будут использоваться для «X». Они применимы только для целых чисел.
- ‘e’, ‘E’, ‘f’, ‘F’ – используются с числами с плавающей запятой для обозначения экспоненты и обозначения с фиксированной точкой соответственно.
Рассмотрим несколько примеров использования функции format() с числами.
# integers print(format(10, '+')) print(format(15, 'b')) print(format(15, 'x')) print(format(15, 'X')) # float print(format(.2, '%')) print(format(10.5, 'e')) print(format(10.5, 'e')) print(format(10.5345678, 'f')) print(format(10.5, 'F'))
Вывод:
+10 1111 f F 20.000000% 1.050000e+01 1.050000e+01 10.534568 10. 500000
Давайте посмотрим, как мы можем использовать функцию format() с настраиваемым объектом. Мы создадим класс и определим для него функцию __format __(). Эта функция должна возвращать строку, иначе мы получим ошибку.
class Data: id = 0 def __init__(self, i): self.id = i def __format__(self, format_spec): print('__format__ method called') if format_spec == 's': return "Data[id=%s]" % self.id if format_spec == 'i': return str(self.id) else: return 'invalid format spec'
Обратите внимание, что я форматирую объект на основе спецификации входного формата. Если указаны нераспознанные спецификации, я возвращаю строку с ошибкой. Мы также можем создать исключение, которое будет обрабатываться вызывающим кодом.
d = Data(20) print(format(d, 's')) print(format(d, 'i')) print(format(d, 'x'))
Вывод:
__format__ method called Data[id=20] __format__ method called 20 __format__ method called invalid format spec
Рейтинг
( Пока оценок нет )
Васильев А. Н. / автор статьи
Помогаю в изучении Питона на примерах. Автор практических задач с детальным разбором их решений.
Комментарии0 Поделиться: Загрузка …функция format() подробно на примерах
Функция format() в Python используется для создания форматированной строки из строки шаблона и предоставленных значений.
Синтаксис:
str.format(*args, **kwargs)
- Строка шаблона может быть строковым литералом или содержать замещающие поля с использованием {} в качестве разделителя.
- Поле замены может быть числовым индексом предоставленных аргументов или они могут быть аргументами на основе ключевых слов.
- Если замещающие поля не имеют индекса или значения ключевого слова, то они заменяются на основе индекса и в порядке, т.е. 0,1,…, n.
- Мы можем предоставить такие последовательности, как кортеж и список, в качестве аргумента для замены на основе индекса.
- Мы можем предоставить словарь в качестве аргумента для замены на основе ключевых слов.
- Аргумент функции форматирования также может быть объектом, мы можем получить доступ к его атрибутам, используя оператор точки для поля замены.
- Мы можем создать строку заданной длины с помощью функции format() с выравниванием строкового литерала вправо, влево или по центру. Мы также можем указать символ, который будет использоваться для заполнения, по умолчанию – пробел.
- Функция format() предоставляет множество возможностей для форматирования чисел. Например, базовое преобразование из десятичного числа в восьмеричное, шестнадцатеричное и т.д. Мы также можем выполнять проценты, заполнение и т.д.
- Существуют быстрые способы вызова функций __str __() и __repr __() для аргумента с использованием !S и !R.
Содержание
- Примеры
- Простое форматирование на основе индекса
- Последовательности, как аргумент format()
- Аргументы ключевого слова
- Словарь, как аргумент
- Доступ к атрибутам объекта для замены поля
- Форматированная строка с отступом и выравниванием
- Форматирование с числами
- Указание знака (+, -) для форматированной строки
- Форматировать целые числа по разным основаниям
- format() с комплексным числом
- Форматирование чисел с использованием запятой в качестве разделителя тысяч
- Процент, заполнение и округление
- Вызов функций str() и repr()
Примеры
Давайте посмотрим на несколько примеров использования функции format().
Простое форматирование на основе индекса
print("My Name is {0}".format("Pankaj")) print("I like {0} and {1}".format("Java", "Python")) # same as above print("I like {} and {}".format("Java", "Python")) # index can be in any order print("I like {1} and {0}".format("Java", "Python"))
Вывод:
My Name is Pankaj I like Java and Python I like Java and Python I like Python and Java
Последовательности, как аргумент format()
# unpacking from sequences t = ("Java", "Python") print("I like {1} and {0}".format(*t)) l = ["Java", "Python"] print("I like {} and {}".format(*t))
Вывод:
I like Python and Java I like Java and Python
Аргументы ключевого слова
print("{name} is the {job} of {company}". format(name="Misha", job="CEO", company="pythonim"))
Вывод: Misha is the CEO of pythonim.
Словарь, как аргумент
Мы можем использовать словарь в аргументе функции format() для замены полей на основе ключевых слов.
d = {"name": "Misha", "job": "CEO", "company": "pythonim"} print("{company} {job} is {name}".format(**d))
Вывод: pythonim CEO is Misha
Доступ к атрибутам объекта для замены поля
Мы можем передать объект в методе format() и использовать оператор точки для доступа к его атрибутам для замены поля.
class Data: id = 0 name = '' def __init__(self, i, n): self.id = i self.name = n dt = Data(1, 'Test') print("{obj_name} id is {obj.id} and name is {obj.name}".format(obj_name="Data", obj=dt))
Вывод: Data id is 1 and name is Test.
Форматированная строка с отступом и выравниванием
Мы можем создать строку указанной длины, используя метод format(). 30}».format(«data with fill character») ‘|||data with fill character|||’
В этом примере я использую консоль Python, чтобы вы могли видеть заполнение строк пробелами. Если мы используем здесь функцию print(), кавычки вокруг строки не будут отображаться, а длина строки будет нечеткой.
Форматирование с числами
Существует множество вариантов форматирования чисел, давайте рассмотрим некоторые из них.
Указание знака (+, -) для форматированной строки
print('{:+f}; {:+f}'.format(1.23, -1.23)) print('{: f}; {: f}'.format(1.23, -1.23)) print('{:-f}; {:-f}'.format(1.23, -1.23))
Вывод:
+1.230000; -1.230000 1.230000; -1.230000 1.230000; -1.230000
Обратите внимание, что во втором операторе пробел используется, как префикс для числа. Для отрицательных чисел всегда используется знак минус (-).
Форматировать целые числа по разным основаниям
Мы можем легко преобразовать int в различные базы, такие как шестнадцатеричные, восьмеричные, двоичные и т. д. Мы также можем указать, будет ли форматированная строка содержать префиксы для базы или нет.
print("int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(28)) print("int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(0x1c)) print("int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(28))
Вывод:
int: 28; hex: 1c; oct: 34; bin: 11100 int: 28; hex: 1c; oct: 34; bin: 11100 int: 28; hex: 0x1c; oct: 0o34; bin: 0b11100
format() с комплексным числом
complex_number = 4 + 2j print("Real: {0.real}, Imaginary: {0.imag}".format(complex_number))
Выход: Реальный: 4,0, Мнимый: 2,0. Это похоже на доступ к атрибутам объекта.
Форматирование чисел с использованием запятой в качестве разделителя тысяч
print('{:,}'.format(1234567890))
Выход: 1,234,567,890.
Процент, заполнение и округление
print('Percentage: {:.3%}'.format(19 / 28)) print('{0:7.2f}'.format(2.344)) print('{0:10.2f}'.format(22222.346))
Вывод:
Percentage: 67.857% 2.34 22222.35
Обратите внимание, что округление после десятичных знаков выполняется в соответствии с правилами округления по умолчанию. Также перед числом делается отступ.
Вызов функций str() и repr()
Мы можем легко вызвать функции str() и repr() для объекта, используя !S и !R соответственно.
print("With Quotes: {0!r}, Without Quotes: {0!s}".format("Data")) class Test: def __str__(self): return 'test str' def __repr__(self): return 'test repr' print("Test Representation: {0!r}, Test String Representation: {0!s}".format(Test()))
Вывод:
With Quotes: 'Data', Without Quotes: Data Test Representation: test repr, Test String Representation: test str
Метод format() очень эффективен при создании строки из различных источников входных данных и применении правил форматирования. Это намного лучше, чем предыдущее форматирование на основе % и строки шаблона.
Метод Python String format() — GeeksforGeeks
Функция Python string format() была введена для более эффективной обработки сложного форматирования строк. Иногда мы хотим сделать обобщенные операторы печати в этом случае вместо того, чтобы писать операторы печати каждый раз, когда мы используем концепцию форматирования.
Python3
txt = "У меня есть {an:.2f} рупий!" печать (txt. формат ( = 4 )) |
9 0003 Вывод:
У меня есть 4 рупии!
Этот метод встроенного класса строк предоставляет функциональные возможности для подстановки сложных переменных и форматирования значений. Этот новый метод форматирования считается более элегантным. Общий синтаксис метода format() следующий: string.format(var1, var2,…). Здесь мы попытаемся понять, как форматировать строку, содержащую фигурные скобки, в Python.
Простая демонстрация метода Python String format()Форматеры работают, помещая в строку одно или несколько замещающих полей и заполнителей, определяемых парой фигурных скобок { } , и вызывая метод str.format() . Значение, которое мы хотим поместить в заполнители и соединить со строкой, переданной в качестве параметров в функцию форматирования.
Синтаксис функции string format()
Использование одного средства форматированияСинтаксис: { }.format(value)
Параметры:
- значение: Может быть целым числом, числовой константой с плавающей запятой, строкой, символами или даже переменными.
Тип возврата: Возвращает отформатированную строку со значением, переданным в качестве параметра в позиции заполнителя.
В этом примере мы будем использовать программу с нотацией строковых скобок для демонстрации метода str.format().
Python3
print ( "{}, Портал информатики для гиков." . формат ( "GeeksforGeeks" ))
str = "Эта статья написана на {}" печать ( 9001 3 стр . формат ( "Python" ))
print ( "Здравствуйте, мне {} лет!" . Формат ( 18 )) |
Вывод:
GeeksforGeeks, Портал компьютерных наук для гиков. Эта статья написана на Python Здравствуйте, мне 18 лет!
Формат строки() с несколькими заполнителями
При форматировании строки в Python можно использовать несколько пар фигурных скобок. Допустим, в предложении требуется еще одна подстановка переменных, что можно сделать, добавив вторую пару фигурных скобок и передав в метод второе значение. Python заменит заполнители значениями в заказ.
Синтаксис: { } { } .format(value1, value2)
Параметры: (value1, value2) : Могут быть целыми числами, числовыми константами с плавающей запятой , строки, символы и даже переменные. Разница лишь в том, что количество значений, передаваемых в качестве параметров в методе format(), должно быть равно количеству заполнителей, созданных в строке.
Ошибки и исключения :
IndexError : Происходит, когда в строке есть дополнительный заполнитель, и мы не передали для него никакого значения в методе format(). Python обычно назначает заполнители с индексом по умолчанию в порядке, например, 0, 1, 2, 3…. для доступа к значениям, переданным в качестве параметров. Поэтому, когда он встречает заполнитель, индекс которого не имеет значения, переданного внутри в качестве параметра, он выдает IndexError.
Программа Python, использующая несколько заполнителей для демонстрации метода str.format().
Python3
my_string = "{}, это {} научный портал для {}" 9001 3 напечатать (my_string. формат ( "Гики для гиков" , "компьютер" , "гики" ))
print ( "Привет! Меня зовут {} и я {} лет" . формат ( "Пользователь" , 19 ))
напечатать ( "Это { } {} {} {}" . формат ( "один" , "два" , "три" , "четыре" )) |
Выход :
GeeksforGeeks — информационный портал для гиков. Привет! Меня зовут Пользователь, мне 19 лет. Это один два три четыре
Формат строки() IndexError
Программа Python, демонстрирующая ошибку индекса, число заполнителей равно четырем, но передано только три значения.
Python3
my_string = "{}, это {} {} научный портал для {}" 9 0005 |
Вывод:
IndexError: индекс кортежа вне допустимого диапазонаФорматирование строк с помощью Escape-последовательностей
Вы можете использовать два или более специально назначенных символа в строке для форматирования строки или выполнения команды. Эти символы называются управляющими последовательностями. Escape-последовательность в Python начинается с обратной косой черты (\). Например, \n — это escape-последовательность, в которой обычное значение буквы n буквально экранируется и дается альтернативное значение — новая строка.
Escape-последовательность | Описание | Example | |
---|---|---|---|
\n | Разбивает строку на новую строку | print(‘Я придумал это стихотворение, чтобы объяснить в свое время\nВсе, что я знаю’) | 9 0037|
\t | Добавляет горизонтальная вкладка | print(‘Время \tценная вещь’) | |
\\ | Печатает обратную косую черту | print(‘Смотрите, как пролетает\\пока маятник’) | |
\’ | Печатает одинарную кавычку | print(‘Даже неважно, как сильно ты стараешься’) | |
\” | Выводит двойную кавычку 011 \ a | издает звук колокольчика | print(‘\a’) |
Форматеры с позиционными и ключевыми аргументами
Когда заполнители { } пусты, Python заменит переданные значения через формат ул. () чтобы. Значения, которые существуют в методе str.format(), по существу кортеж типы данных и каждое отдельное значение, содержащееся в кортеже, может быть вызвано его порядковым номером, который начинается с порядкового номера 0. Эти порядковые номера могут быть переданы в фигурные скобки, которые служат заполнителями в исходной строке .
Синтаксис: {0} {1}.format(позиционный_аргумент, ключевое_аргумент)
Параметры: (позиционный_аргумент, ключевое_аргумент)
- 90 003 Позиционный_аргумент могут быть целыми числами, числовыми константами с плавающей запятой, строками, символами и даже переменными.
- Keyword_argument по сути является переменной, хранящей некоторое значение, которое передается как параметр.
Пример:
Чтобы продемонстрировать использование средств форматирования с аргументами позиционного ключа.
Python3
печать ( "{0} любовь {1}!!" . формат ( "GeeksforGeeks" , "Geeks" 90 014 |
Компьютерщики любят компьютерщиков!!
Компьютерщики любят Компьютерщики для Компьютерщиков!!
Каждый программист должен знать, как использовать программирование с открытым исходным кодом и операционные системы
Каждый программист должен знать, как использовать исходный код. Открытое программирование и программист
GeeksforGeeks — портал информатики для гиков
Указание типа в Python
В фигурные скобки нашего синтаксиса можно включить дополнительные параметры. Используйте синтаксис кода формата {имя_поля: преобразование} , где имя_поля указывает порядковый номер аргумента метода str.format(), а преобразование относится к коду преобразования типа данных.
Использование %s – преобразование строки через str() перед форматированиемPython3
печать ( "%20s" % ( 'geeksforgeeks' , )) печать ( "%-20s" % ( 'Interngeeks' , )) print ( "%.5s" % ( 900 14 |
Выход:
интернджики InterИспользование %c — символ до форматирования
Python3
type = 9 0014 |
совпадение = 12000
сайт = 'amazon' 900 05
print (" % s это так полезно. I пытался поискать\ до мобильных и у них был хороший, который стоил % д рупий. " % (сайт , совпадение)) |
Вывод:
amazon очень полезен. Я попытался найти мобильные телефоны, и у них был хороший, который стоил 12000 рупий
Другой полезный Тип Указание
- %u десятичное целое без знака
- %o восьмеричное целое 900 71
- f – с плавающей запятой дисплей
- b – двоичное число
- o – восьмеричное число
- %x – шестнадцатеричное со строчными буквами после 9
- %X – шестнадцатеричное число с прописными буквами после 9
- e – представление степени
Также можно указать символы форматирования. Единственное изменение заключается в использовании двоеточия (:) вместо %.
Например, вместо %s используйте {:s}, а вместо %d используйте (:d}
Синтаксис: String {field_name:conversion} Example. format(value)
Ошибки и исключения:
ValueError : Ошибка при преобразовании типа в этом методе.
Преобразование десятичных целых чисел с основанием 10 в числовые константы с плавающей запятой безопасно на {0:f}% {1}!!"
.
формат
(
100
,
"зашифрованный"
)) 9 0014
print
(
"Мое среднее значение этого {0} было {1: .2f}%"
.
формат
(
"семестр"
,
78.234876
))
90 012 print
(
"Мое среднее значение этого {0} было {1:.0f}%"
.
формат
(
"семестр"
,
78. 2348 76
))
печать
(
"{0} из 100 равно {1:b}"
.
формат
(
"двоичный"
,
100
))
900 13 print
(
"{0} из 100 равно {1:o}"
.
формат
(
"восьмеричный"
,
100
))
90 005Выход:
Этот сайт надежно зашифрован на 100.000000%!! Мой средний балл за этот семестр составил 78,23%. Мой средний балл за этот семестр составил 78% Двоичный код 100 равен 1100100. Восьмеричное число 100 равно 144
Ошибки определения типа
Демонстрация ValueError при выполнении принудительных преобразований типов
Python3
print 9 0013 ( "Сегодня на улице {0:d} градусов ! " . формат ( 35,567 ))
|
Вывод:
ValueError: Неизвестный код формата 'd' для объекта типа 'float'
Прокладка Подстановки или создание пробелов
Пример: Демонстрация пробелов при передаче строк в качестве параметров
По умолчанию строки выравниваются по левому краю поля, а числа выравниваются по правому краю. Мы можем изменить это, поместив код выравнивания сразу после двоеточия. 9 : центрировать текст в поле > : текст в поле с выравниванием по правому краю !"
.
формат
(
"GeeksforGeeks"
,
"гики"
)) 90 014
print
(
"Снаружи {0:5} градусов ! 920s}"
.
формат
(
"Гики"
))
90 003 Выходные данные:
GeeksforGeeks — портал информатики для гиков!
На улице 40 градусов!
GeeksforGeeks была основана в 2009 году!
GeeksforGeeks была основана в 2009 году!
*******Geeks********
Приложения
Средства форматирования обычно используются для организации данных. Форматеры можно увидеть в лучшем свете, когда они используются для визуальной организации большого количества данных. Если мы показываем базы данных пользователям, использование средств форматирования для увеличения размера поля и изменения выравнивания может сделать вывод более читаемым.
Пример: демонстрация организации больших данных с помощью format()
Python3
def
unorganized(a, b):
9 0005
для
i
в
диапазон
(a, b):
печать
(i, i
*
* 900 14 2
, я
*
*
3
, i
*
*
4
)
def
организован(а) , б):
для
i
в диапазоне
(а, б):
900 14 печать
(
"{:6d} {:6d} {:6d} {:6d}"
.
формат
(я, я
*
*
2
, я
*
*
3
, я
*
*
4
))
n1
=
int
(
ввод
(
"Введите нижний диапазон:-\n" 900 14 ))
n2
=
целое число
(
ввод
(
"Введите верхний диапазон :-\n"
))
печать
(
9 0013 "------Перед использованием средств форматирования------- "
)
неорганизованный(n1, n2)
печать
() 9001 4 print
(
"-------После использования форматтеров-- -------"
)
печать
()
организованный(n1, n2)
Вывод:
90 044 Введите нижний диапазон:-
3
Введите верхний диапазон: -
10
------Перед использованием форматтеров-------
3 9 27 81
4 16 64 256
5 25 125 625
6 36 216 1296
7 49 343 2401
8 64 512 4096
9 81 729 6561
-------После использования форматтеров---------
3 9 27 81
4 16 64 256
5 25 125 625
6 36 216 1296
7 49 343 2401
8 64 512 4096
9 81 729 6561 Использование словаря для форматирования строки Использование словаря для распаковки значений в заполнители в строке, которую необходимо отформатировать. В основном мы используем ** для распаковки значений. Этот метод может быть полезен при подстановке строк при подготовке SQL-запроса.
Python3
введение
=
'Меня зовут {first_name} {mid_name} {last_name} AKA the {aka}.'
полное_имя
=
{
'имя'
:
90 013 'Тони' ,
'отчество'
:
'Ховард'
,
'last_name'
:
"Старк"
,
"ака"
:
"Железный человек"
,
}
печать
(введение.
формат
(
* 9 0014 *
ФИО))
Вывод:
Меня зовут Тони Ховард Старк, он же Железный человек.
Python format() со списком
Учитывая список значений с плавающей запятой, задача состоит в том, чтобы усечь все значения с плавающей запятой до двух десятичных цифр. Давайте посмотрим на различные методы выполнения задачи.
Python3
Ввод
=
[
9001 3 100.7689454 ,
17.232999
,
60.98867
,
300.83748789
]
Вывод
=
[
'{:.2f}'
.
формат
(элемент)
для
элемент
в
Ввод
]
печать
(вывод)
Вывод:
['100,77', '17,23', '60,99', ' 300. 84']
Python String format() Метод
❮ Строковые методы
Пример
Вставьте цену в местозаполнитель, цена должна быть
в формате с двумя десятичными знаками с фиксированной точкой:
txt = "Всего за {цена:.2f} долларов!"
print(txt.format(price = 49))
Попробуйте сами »
Определение и использование
Метод format()
форматирует указанные
значение(я) и вставьте их в местозаполнитель строки.
Заполнитель определяется с помощью фигурных скобок: {}. Узнайте больше о
заполнители в разделе «Заполнители» ниже.
Метод format()
возвращает форматированный
нить.
Синтаксис
строка .format( значение1, значение2... )
Значения параметров
Параметр Описание значение1, значение2... Обязательно. Одно или несколько значений, которые следует отформатировать и вставить в
Струна. Значения представляют собой список значений, разделенных запятыми,
список ключей=значений или их комбинация.
Значения могут относиться к любому типу данных.
Заполнители
Заполнители можно идентифицировать с помощью именованных индексов {цена}
, номер
индексы {0}
или даже пустые заполнители {}
.
Пример
Использование разных значений заполнителей:
txt1 = "Мой
имя {fname}, я {возраст}".format(fname = "Джон", возраст = 36)
txt2 = "Мой
имя {0}, я {1}".format("Джон",36)
txt3 = "Мой
имя {}, я {}".format("Джон",36) 9
:=
:+
:-
:
:,
:_
:б
:с
:д
:е
:Е
:ф
:F
инф
и нан
как INF
и НАН
) :г
:G
:о
:х
:Х
:n
:%
❮ Строковые методы
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9000 5
Основные каталожные номера
Справочник по HTMLСправочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Лучшие примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
ФОРУМ | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.