В этой статье по языку программирования Python мы поговорим с Вами о строках, а именно, об f-строках и их форматировании.
В языке Python есть 4 способа форматирования строк:
- Строковый оператор форматирования
- Метод format()
- f-строки (эта статья)
- Шаблонные строки
«F-строки» обеспечивают краткий и удобочитаемый способ заключить значение выражений Python в строки. В исходном коде Python форматированная строка или f-строка представляет собой литеральную строку с префиксом «f» или «F», содержащую выражения внутри фигурных скобок {}. Выражения заменяются их значениями.
Чтобы использовать форматированные строковые литералы, просто поставьте перед строкой букву «f» и заключите выражения Python в фигурные скобки.
Пример:
>>> programming_language = 'Python'
>>> percent = 100
>>> print(f'Вы считаете, что язык {programming_language} лучший? {percent}%!')
Вы считаете, что язык Python лучший? 100%!
Пример высчитывания и преобразования в строку:
>>> print(F'2 + 2 = {2 + 2}')
2 + 2 = 4
Ещё пример:
first_number = int(input('Введите число: '))
first_character = input('Введите знак: ')
second_number = int(input('Введите число: '))
second_character = input('Введите знак: ')
third_number = int(input('Введите число: '))
def calculate(first_digit, operator, second_digit):
if operator == '+':
return first_digit + second_digit
if operator == '-':
return first_digit - second_digit
if operator == '*':
return first_digit * second_digit
if operator == '/':
try:
return first_digit / second_digit
except ZeroDivisionError:
print('Делить на ноль нельзя!')
print(f'{calculate(calculate(first_number, first_character, second_number), second_character, third_number)}')
Результат:
>>> Введите число: 2
>>> Введите знак: +
>>> Введите число: 2
>>> Введите знак: /
>>> Введите число: 3
1.3333333333333333
Многострочные f-строки
Многострочные f-строки (строки, которые можно оборачивать для удобства) обычно заключают в круглые скобки (в соответствии с PEP-8: все, что находится в круглых скобках, можно оборачивать).
>>> name = 'Владислав'
>>> profession = 'автор notehunter.net'
>>> affiliation = 'интернете"'
>>> message = (
... f'Меня зовут {name}. '
... f'Я {profession} '
... f'в {affiliation}.'
... )
>>> print(message)
Результат:
Меня зовут Владислав. Я автор notehunter.net в интернете.
Использование однострочного if/else в f-строке.
>>> a = 10
>>> b = 5
>>> f"{a if a > b else b}"
`10`
>>> f"{a if a < b else b}"
5
Междустрочные комментарии
Выражения не должны содержать комментарии с применением октоторпа (символ «#»). В противном случае, у вас будет ошибка синтаксиса SyntaxError:
>>> print(f'2 + 2 = {4 # наверно}')
File "C:\Users\Razilator\Desktop\Courses\nth-coding\main.py", line 1
print(f'2 + 2 = {4 # наверно}')
^
SyntaxError: f-string expression part cannot include '#'
Process finished with exit code 1
Cтроки документации и f-строки.
Форматированные строковые литералы нельзя использовать в качестве строк документации, даже если они не содержат выражений.
>>> def foo():
f'Not a docstring'
>>> foo.__doc__ is None
True