В python f строки используются довольно часто, они являются удобным инструментом для форматирования строк. И так, в этой статье мы поговорим про f строки Python. Не знаю правильно ли так говорить, но в Python, есть несколько вариантов форматирования строки, в этой статье мы рассмотрим два наиболее часто используемых, и на мой взгляд удобных вариантов.
- Метод format() — данный метод является заменой % — форматирования. На мой взгляд удобная замена.
- f строки — в целом он поход на метод format, но он является более гибким в плане форматирования
Форматирование строки с помощью метода format()
name = "Timur"
age = 30
print("Меня зовут {}. Мне {} лет.".format(name, age)
Меня зовут Timur. Мне 30 лет.
print("Меня зовут {name} Мне {age} лет.".format(age=age, name=name)
Меня зовут Timur. Мне 30 лет.
Как видите при работе с методом format() нет ничего сверхсложного, все довольно просто и понятно. Мы просто подставляем наши переменные в нужные нам места. Ниже постараюсь более подробно раскрыть логику работы метода format().
Примеры с методом format()
name = "Timur"
age = 30
print("Меня зовут {}. Мне {} лет.".format(name, age)
Меня зовут Timur. Мне 30 лет.
- У нас есть две переменные, name и age (имя и возраст соответственно)
- При выводе, методу print мы передаем два аргумента, в той последовательности, в которой мы хотим их вывести.
- Обязательным условием являются фигурные скобки, заместо фигурных скобок, метод format() подставляет значение указанной переменной
В данном случае, мы рассмотрели классический вариант вывода, ниже рассмотрим еще несколько вариантов использования метода format().
# Классический вариант
print("Hello {}, your balance is {}.".format("Adam", 230.2346))
# Позиционный вариант
print("Hello {0}, your balance is {1}.".format("Adam", 230.2346))
# Передача аргументов ключевым словом
print("Hello {name}, your balance is {blc}.".format(name="Adam", blc=230.2346))
# Смешанный вариант
print("Hello {0}, your balance is {blc}.".format("Adam", blc=230.2346))
- В первом случае, мы описали классический вариант передачи аргументов строку с помощью метода format()
- Во втором случае, мы используем позиционную передачу, то есть, в фигурных скобках мы указываем id аргумента, который должен там быть вне зависимости от указанной последовательности.
- В третьем варианте, мы используем ключи, в данном случае, нам так же не важно в какой последовательности идут наши аргументы. Мы указываем нашим аргументам ключи, которые передаем в нужное место нашей строки в фигурных скобках
- В четвертом варианте, я продемонстрировал смешанный вариант, мы одновременно передаем два значения. Одно значение передается позиционным вариантом, второе значение передается ключом. Стоит отметить, что в случае использования смешанного варианта, аргументы с ключевым словом, должны следовать за позиционными.
Форматирование с выравниваем
Тип | Значение |
---|---|
< | Выровнено по левому краю с оставшимся пространством |
^ | Центр выровнен по оставшемуся пространству |
> | Выровнено по правому краю с оставшимся пространством |
= | Перемещает знак (+) (-) в крайнее левое положение |
При форматировании, частенько приходится выравнивать строки, метод format() использует для таких целей операторов.
Пример. Форматирование с выравниваем.
# С выравниванием по левому краю
print("{:5}".format("cat"))
# С выравниванием по правому краю
print("{:>5}".format("cat"))
# Выравнивание по центру
print("{:^5}".format("cat"))
# Выравнивание и заполнение строки символом *
# '*' символ заполнения
print("{:*^5}".format("cat"))
#Результат
cat
cat
cat
*cat*
Пример. Срезы строк с помощью метода format()
# Усечение строки до 3 букв
print("{:.3}".format("caterpillar"))
# Усечение строки до 3х букв
print("{:5.3}".format("caterpillar"))
# Усечение строки до 3х букв
# Заполнение и выравнивание
print("{:^5.3}".format("caterpillar"))
#Результат
cat
cat
cat
Это конечно не все варианты использования метода format(), но в целом думаю вам логика работы ясна.
Python f строки
f строки python работает достаточно просто, они берут значение переменной, и подставляют их в строку. Для отображения в самой строке достаточно указать имя переменной в фигурных скобках. Рассмотрим небольшой пример.
name = "Timur"
age = 30
print(f"Меня зовут {name} Мне {age} лет.")
Меня зовут Timur. Мне 30 лет.
Отлично! Просто подставив переменные в нужных местах, мы вывели их значения в строке. Удобны ли f строки? На мой взгляд однозначно да. Ниже рассмотрим несколько вариантов использования f строк.
Форматирование даты без использования метода strftime()
from datetime import datetime as dt
now = dt.now()
print(f"Текущее время {now:%d.%m.%Y %H:%M}")
#Результат
Текущее время 28.09.2021 11:51
Нам достаточно указать формат даты и не более.
Арифметические действия прямо в строке
Да, это тоже является несомненным плюсом, мы можем совершать простые арифметические действия прямо в строке.
x = 2
y = 5
print(f"{x} x {y} / 2 = {x * y / 2}")
#Результат
2 x 5 / 2 = 5
Выбор значения по индексу в списке
city= ["Москва", "Волгоград", "Воронеж", "Пермь"]
print(f"Мы живём в городе {city[2]}")
#Результат
Мы живём в городе Воронеж
Элементы словаря по ключу
planet = {"name": "Земля", "radius": 6378000}
print(f"Планета {planet['name']}. Радиус {planet['radius']/1000} км.")
#Результат
Планета Земля. Радиус 6378.0 км.
В f строке Python, вы можете использовать в качестве ключа, как строки, так и числа. Ровно так же, как мы это делаем обычно.
По мимо всего описанного, в f строках мы так же можем вызывать и функции. В целом f строки являются довольно гибким инструментом для форматирования.