Python: f-строки |
![]() |
Добавил(а) microsin |
Python предоставляет мощную фичу, так называемые f-строки (форматированные строковые литералы), применяемые для упрощения форматирования, т. е. для более лаконичного управления тем, что будет выводить функция print() [2]. F-строки были введены в Python 3.6, и их функционал во многом похож на на то, что делают спецификации формата printf языка C, или спецификации формата вывода C#. Пользователь получает возможность краткий и интуитивно понятный способ встраивания выражений и переменных непосредственно в строки. [Как использовать f-строки на Python] Чтобы создать f-строку, подставьте перед строкой префикс из буквы f. Сама строка может быть оформлена так же, как этого ожидает метод str.format(). Печать переменных. В следующем примере f-строка используется внутри функции print() для печати строки. Для указания формата вывода печатаемой переменной используются фигурные скобки, таким способом мы указываем, что в этом месте должно быть выведено на печать значение переменной val. Подобным образом мы также используем переменную name, подставляя её во второй вызов функции print(). # Пример программы Python3, где используется f-строка: val = 'Geeks' Эта программа выведет: GeeksforGeeks is a portal for Geeks. Печать даты. В этом примере мы напечатаем дату с помощью модуля datetime и f-строки. Переменной today присваивается значение текущей даты, и внутри f-строки задается предоставление переменной по формату %B, %d, и %Y что означает полный месяц, день месяца и год соответственно. # Печать текущей даты с помощью библиотеки datetime: Эта программа выведет: May 23, 2024 Для вывода месяца по-русски можно воспользоваться модулем locale: from datetime import datetime Эта программа выведет: Сейчас Март месяц, 06 число, 2025 год. Примечание: f-строки работают быстрее, чем два чем два наиболее часто используемых механизма форматирования строк: форматирование % и str.format(). [Использование кавычек в f-строках] Чтобы использовать в f-строках кавычек любого типа, следует убедиться, что кавычки внутри выражения не такие же, как кавычки, используемые для самой f-строки. print(f"'GeeksforGeeks'") # правильно Этот код выведет: 'GeeksforGeeks' [Вычисление выражений с помощью f-строк] Мы также можем вставлять выражения в f-строки на Python. Для этого внутрь фигурных скобок вставляется вычисляемое выражение, и результат вычисления будет напечатан в выводимом сообщении. english = 78 maths = 56 hindi = 85 Этот код выведет: Ученик получил общую оценку 219 из 300 [Использование f-строк в JSON] Вы можете непосредственно встраивать f-строки внутрь строк JSON на Python: name = "Алиса" age = 30 json_data = f'{{ "Имя": "{name}", "возраст": {age} }}' Этот код выведет: { "Имя": "Алиса", "возраст": 30 } Обратите внимание на использование двойных фигурных скобок {{ }} внутри f-строки для формирования корректной строки JSON. [Использование f-строк для ввода] На Python мы можем использовать f-строки для ввода значений вместе с функцией input(): name = input("Введите ваше имя: ") message = f"Привет, {name}!" [Возможные альтернативы для f-строк] До появления f-строк в Python 3.6, вы могли форматировать вывод с помощью метода str.format(), или использовать %-форматирование (старый стиль форматирования Python). Например: name = "Алиса" age = 30 sentence = "Меня зовут {}, и мне {} лет.".format(name, age) Этот код введет: Меня зовут Алиса, и мне 30 лет. Однако f-строки обычно предпочтительнее, потому что они понятнее и более эффективны. [Ошибки при использовании f-строк] Обратные слеши в f-строках на Python. Символы обратного слеша (backslash, \) нельзя использовать напрямую. f"newline: {ord('\n')" Чтобы решить эту проблему, мы можем поместить символ backslash в переменную: newline = ord('\n') Этот код выведет: newline: 10 Встраивание комментариев в f-строку. Мы не можем использовать комментарии внутри выражений f-строки. Следующий код приведет к ошибке: f"GeeksforGeeks is {5*2 + 3 #geeks-5} characters." Печать фигурных скобок с помощью f-строк. Если мы хотим, чтобы f-строка вывела фигурные скобки, необходимо указать фигурную скобку дважды. Обратите внимание, что что для каждой отдельной пары фигурных скобок нам нужно дважды ввести двойные фигурные скобки, как показано в приведенном ниже коде. # Печать одиночных фигурных скобок: Этот код выведет: {Привет, Олег!} Печать элементов key-value словаря с помощью f-строк. При работе со словарями следует убедиться, что если мы используем двойные кавычки (") для самой f-строки, то для ключей словаря внутри f-строки следует использовать одинарные кавычки ('), и наоборот. Иначе мы получим ошибку синтаксиса. Например: Geek = { 'Id': 112, 'Name': 'Harsh'} При запуске этого кода произойдет ошибка: Hangup (SIGHUP) А вот этот код будет работать правильно: Geek = { 'Id': 100, 'Name': 'Om'} .. и выведет: Id of Om is 100 [Ссылки] 1. f-strings in Python site:geeksforgeeks.org. |