Документация по Python. Теоретические материалы, и практические задачи

Python f строки

В 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))
  1. В первом случае, мы описали классический вариант передачи аргументов строку с помощью метода format()
  2. Во втором случае, мы используем позиционную передачу, то есть, в фигурных скобках мы указываем id аргумента, который должен там быть вне зависимости от указанной последовательности.
  3. В третьем варианте, мы используем ключи, в данном случае, нам так же не важно в какой последовательности идут наши аргументы. Мы указываем нашим аргументам ключи, которые передаем в нужное место нашей строки в фигурных скобках
  4. В четвертом варианте, я продемонстрировал смешанный вариант, мы одновременно передаем два значения. Одно значение передается позиционным вариантом, второе значение передается ключом. Стоит отметить, что в случае использования смешанного варианта, аргументы с ключевым словом, должны следовать за позиционными.

Форматирование с выравниваем

Форматирование чисел с выравниванием
Тип Значение
< Выровнено по левому краю с оставшимся пространством
^ Центр выровнен по оставшемуся пространству
> Выровнено по правому краю с оставшимся пространством
= Перемещает знак (+) (-) в крайнее левое положение

При форматировании, частенько приходится выравнивать строки, метод 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 строки являются довольно гибким инструментом для форматирования.