Как подставить переменную в строку
В Python есть шесть способов подставить переменную в строку. Не все из них социально приемлемые.
Если коротко, то преподаватель точно не завернёт работу, использующую .format
:
person1 = 'Александра'
person2 = 'Александр'
message_template = """Здравствуйте, {recipient}! На связи {sender}.
...
С уважением,
{sender}
"""
message = message_template.format(recipient=person1, sender=person2)
print(message)
Как не надо
.format cо строковыми литералами
Выносить в параметры .format
нужно только изменяющиеся данные. Не стоит писать
message_template = "{greeting}{comma} {recipient}{exclamation_point}"
message = message_template.format(
greeting='Здравствуйте', comma=',', recipient='Александра', exclamation_point='!'
)
print(message)
Параметры comma
и exclamation_point
всегда будут равны запятой и восклицательному знаку. Их надо делать частью шаблона:
message_template = "{greeting}, {recipient}!"
message = message_template.format(
greeting='Здравствуйте', recipient='Александра',
)
print(message)
Если заранее известно, что и приветствовать мы всегда будем словом “Здравствуйте”, оно тоже станет частью шаблона:
message_template = "Здравствуйте, {recipient}!"
message = message_template.format(recipient='Александра')
print(message)
Сложение
Как было упомянуто в статье про арифметические операции над строками, их лучше избегать:
person1 = 'Александра'
person2 = 'Александр'
message = """Здравствуйте, """ + person1 + """! На связи """ + person2 + """.
...
С уважением,
""" + person2
print(message)
Такие строки трудно читать и изменять.
replace
person1 = 'Александра'
person2 = 'Александр'
message_template = """Здравствуйте, {recipient}! На связи {sender}.
...
С уважением,
{sender}
"""
message = message_template.replace('{recipient}', person1)
message = message.replace('{sender}', person2)
print(message)
В сущности аналогичен .format
, но менять количество и название переменных уже труднее.
А ещё .format
умеет, например, выравнивать строки,
а replace
так не может.
Как ещё можно
В моменты, когда нужно форматирование строки в стиле printf (функции из популярного системного языка C), используют оператор %.
Начиная с версии 3.6 в Python появились f-строки — более удобная замена .format
.
С особо редких случаях прибегают к Template Strings.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.