Hello World
1.66K subscribers
71 photos
6 videos
3 files
161 links
Be so good that you cannot be ignored. And then, go one step beyond.
Download Telegram
Погружение в f-строки

f-строки делают очень простую вещь — они берут значения переменных, которые есть в текущей области видимости, и подставляют их в строку. В самой строке вам лишь нужно указать имя этой переменной в фигурных скобках.

name = "Олег"
age = 20
print(f"Меня зовут {name} Мне {age} лет.")
# Output: Меня зовут Олег. Мне 20 лет.


📌f-строки также поддерживают расширенное форматирование чисел:

from math import pi
print(f"Значение числа pi: {pi:.2f}")
# Output: Значение числа pi: 3.14


📌С помощью f-строк можно форматировать дату без вызова метода strftime():

from datetime import datetime as dt

now = dt.now()
print(f"Текущее время {now:%d.%m.%Y %H:%M}")
# Output: Текущее время 24.02.2017 15:51


📌Они поддерживают базовые арифметические операции. Да, прямо в строках:

x = 10
y = 5
print(f"{x} x {y} / 2 = {x * y / 2}")
# Output: 10 x 5 / 2 = 25.0


📌Позволяют обращаться к значениям списков по индексу:

planets = ["Меркурий", "Венера", "Земля", "Марс"]
print(f"Мы живем на планете {planets[2]}")
# Output: Мы живем на планете Земля


📌А также к элементам словаря по ключу:

planet = {"name": "Земля", "radius": 6378000}
print(f"Планета {planet['name']}. Радиус {planet['radius']/1000} км.")
# Output: Планета Земля. Радиус 6378.0 км.


📌Причем вы можете использовать как строковые, так и числовые ключи. Точно также как в обычном Python коде:

digits = {0: 'ноль', 'one': 'один'}
print(f"0 - {digits[0]}, 1 - {digits['one']}")
# Output: 0 - ноль, 1 - один


📌Вы можете вызывать в f-строках методы объектов:

name = "Олег"
print(f"Имя: {name.upper()}")
# Output: Имя: ОЛЕГ


📌А также вызывать функции:

print(f"13 / 3 = {round(13/3)}")
# Output: 13 / 3 = 4


f-строки очень гибкий и мощный инструмент для создания самых разнообразных шаблонов.

Со всеми возможностями f-строк вы можете ознакомится в PEP498.
Не забывайте, что их можно использовать только в версиях Python >= 3.6

#fstring