Форматирование строк в Python
Форматирование строк является одной из базовых операций в любом языке программирования и Python здесь не исключение. Форматирование строк в Python осуществляется достаточно просто, и далее я Вам покажу как.
В данной статье мы рассмотрим с Вами как строки форматировались до версии Python 3.6.
Итак, до Python 3.6 форматирование строк осуществлялось двумя путями. Первый - с помощью символа процента % и второй - с помощью метода str.format(). Рассмотрим каждый из них подробнее.
Как использовать форматирование строк с помощью знака %?
У строк в Python есть встроенный оператор %, который может использоваться для их форматирования следующим образом:
>>> name = "Myrusakov"
>>> "Привет, %s." % name
'Привет, Myrusakov'
Или, если строку нужно отформатировать с помощью нескольких переменных, нужно использовать неизменяемый список, т.е. кортеж:
>>> name = "Myrusakov"
>>> age = 12
>>> "Привет, %s. Вам %s лет." % ( name, age )
'Привет, Myrusakov. Вам 12 лет'
Вот так просто можно отформатировать строку. Но у этого способа есть свои недостатки. Так, например, чем больше переменных Вам будет необходимо передать в строку для форматирования, тем более запутанным станет итоговое выражение. Поэтому данный способ, хоть и существует с самых первых версий Python, но тем не менее не рекомендуется к использованию.
Форматирование строки с помощью str.format()
По сути, str.format() является улучшением способа с оператором %. Вот как выглядит данный способ на практике:
>>> name = "Myrusakov"
>>> age = 12
>>> "Привет, {}. Вам {} лет.".format( name, age )
'Привет, Myrusakov. Вам 12 лет'
На переменные в строке можно ссылаться также и по числовому индексу из кортежа:
>>> name = "Myrusakov"
>>> age = 12
>>> "Привет, {1}. Вам {0} лет.".format( age, name )
'Привет, Myrusakov. Вам 12 лет'
В метод str.format() переменные также можно передавать и по имени:
>>> name = "Myrusakov"
>>> age = 12
>>> "Привет, {name}. Вам {age} лет.".format( age=age, name=name )
Также Вы можете передать целый объект в метод str.format следующим образом:
>>> person = {'name': 'Myrusakov', 'age': 12 }
>>> "Привет, {name}. Вам {age} лет.".format(**person)
В данном примере объект person разбирается на отдельные переменные, которые затем вставляются в строку. Однако, у данного способа форматирования тоже есть недостатки. И связаны они с тем, что при необходимости передать большое количество переменных в строку, сам код становиться трудно читаемым.
Таким образом, сегодня мы узнали с Вами о 2-ух способах форматирования строк в Python. Используйте их, когда необходимо, но имейте ввиду, что существую и более продвинутые способы форматирования строк в Python, о которых мы поговорим в следующих статьях.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.