Функция format()

10.02.2023
1950
Рассмотрим функцию format() в Python и то, как использовать ее для форматирования строк.

Функция format() является одной из наиболее полезных функций в Python, когда речь идет о работе со строками. Она позволяет форматировать строки, заменяя местозаполнители на конкретные значения.

Простой пример

Для начала, давайте рассмотрим простой пример использования функции format(). Предположим, что у нас есть строка "Hello, {}!". Мы можем использовать функцию format(), чтобы заменить место заполнителя "{}" на конкретное значение, например, "John". Для этого мы вызовем функцию format() на нашей строке и передадим значение "John" в качестве аргумента:

name = "John"
greeting = "Hello, {}!".format(name) # замена местозаполнителя на значение переменной name
print(greeting) # вывод строки

Результат этого кода будет "Hello, John!".

Передача нескольких аргументов

Функция format() может принимать несколько аргументов. Например, мы можем использовать функцию format() для форматирования строки, которая содержит несколько местозаполнителей. Предположим, у нас есть строка "My name is {}, I am {} years old, and I live in {}.". Мы можем использовать функцию format(), чтобы заменить каждый из местозаполнителей на соответствующее значение:

name = "John"
age = 30
city = "New York"
personal_info = "My name is {}, I am {} years old, and I live in {}.".format(name, age, city) # замена местозаполнителей на значения переменных name, age и city
print(personal_info) # вывод строки

Результат этого кода будет "My name is John, I am 30 years old, and I live in New York.".

Использование именованных аргументов

Мы также можем использовать именованные аргументы при вызове функции format(). Именованные аргументы позволяют нам явно указать, какое значение должно быть заменено на какой местозаполнитель. Например, мы можем использовать функцию format() для форматирования строки, которая содержит несколько местозаполнителей, и явно указать, какое значение должно быть заменено на каждый из них:

name = "John"
age = 30
city = "New York"
personal_info = "My name is {n}, I am {a} years old, and I live in {c}.".format(n=name, a=age, c=city) # использование именованных аргументов для замены местозаполнителей на значения переменных name, age и city
print(personal_info) # вывод строки

Результат этого кода будет "My name is John, I am 30 years old, and I live in New York.".

Форматирование чисел и дат

Функция format() может также использоваться для форматирования чисел и дат. Например, мы можем использовать функцию format() для форматирования чисел с определенным количеством знаков после запятой:

x = 3.14159265359
formatted_num = "The value of x is {:.2f}".format(x) # форматирование числа x с двумя знаками после запятой
print(formatted_num) # вывод строки

Результат этого кода будет "The value of x is 3.14".

Также, мы можем использовать функцию format() для форматирования дат. Например, мы можем использовать функцию format() для форматирования даты в формате "гггг-мм-дд":

from datetime import date
today = date.today()
formatted_date = "Today's date is {:%Y-%m-%d}".format(today) # форматирование текущей даты в формате "гггг-мм-дд"
print(formatted_date) # вывод строки

Результат этого кода будет "Today's date is December 8, 2021" (если текущая дата - 8 декабря 2021 года).

Дополнительные возможности

Кроме вышеуказанных возможностей, функция format() имеет еще несколько интересных параметров:

Выравнивание

Мы можем использовать параметры выравнивания, чтобы выровнять значения, заменяющие местозаполнители, по правому или левому краю. Например, следующий код выравнивает значение "John" по правому краю, заполняя оставшееся пространство знаками пробела:

name = "John"
greeting = "Hello, {:>10}!".format(name) # выравнивание строки по правому краю и заполнение оставшегося пространства знаками пробела
print(greeting) # вывод строки

Результат этого кода будет "Hello, John!".

Заполнение

Мы также можем использовать параметр заполнения, чтобы заменить знак пробела на произвольный символ. Например, следующий код заменяет пробелы на символ "*":

name = "John"
greeting = "Hello, {:*>10}!".format(name) # замена пробелов на символ "*" и выравнивание строки по правому краю
print(greeting) # вывод строки

Результат этого кода будет "Hello, ******John!".

Использование индексов

Мы можем использовать индексы, чтобы ссылаться на конкретные аргументы, передаваемые в функцию format(). Например, следующий код использует индексы для ссылки на значения "John" и "New York":

name = "John"
city = "New York"
personal_info = "My name is {0}, and I live in {1}.".format(name, city) # использование индексов для замены местозаполнителей на значения переменных name и city
print(personal_info) # вывод строки

Результат этого кода будет "My name is John, and I live in New York.".

Заключение

Функция format() очень полезна при работе со строками в Python, и ее использование может значительно упростить ваш код.