Вы уже знаете, как перенести строку или «слепить» несколько строк, чтобы получить новое выражение. Но в программировании есть альтернативы этих операций. Они повышают читаемость кода и делают его проще в поддержке.
Базовый способ соединения строк — конкатенация. С помощью конкатенации строки «суммируются» друг с другом, как в примере ниже:
first_name = 'Joffrey'
greeting = 'Hello'
print(greeting + ", " + first_name + "!")
# => Hello, Joffrey!
Конкатенация работает просто, но выглядит не всегда наглядно. Из-за кавычек сложно разглядеть то, каким будет конечный результат. И чем сложнее устроена строка, тем запутаннее она начнет выглядеть. У конкатенации есть альтернатива — интерполяция. Вот как это выглядит:
first_name = 'Joffrey'
greeting = 'Hello'
print(f'{greeting}, {first_name}!')
# => Hello, Joffrey!
Буква f
указывает на то, что мы создаем f-строку — шаблон, в который с помощью фигурных скобок подставляются значения переменных. На выходе получается обычная строка.
Рассмотрим такой пример:
school = 'Hexlet'
what_is_it = f'{school} - online courses'
print(what_is_it) # => Hexlet - online courses
Почти во всех языках для объединения строк интерполяция предпочтительнее конкатенации. Строка при этом получается склеенная, и внутри нее хорошо просматриваются пробелы и другие символы.
Интерполяция помогает сделать код более понятным для разработчиков. Но это не единственная полезная альтернатива, о которой мы хотели рассказать. Далее разберемся, как объявлять многострочную строку и не использовать \n
.
Представьте, что нам нужно определить строку, которая состоит из нескольких строчек — то есть внутри есть переводы строки \n
. Например, она будет выглядеть так:
text = 'Пример текста,\nсостоящего из\nнескольких строк'
На печати строка примет совсем другой вид:
Пример текста,
состоящего из
нескольких строк
Для таких ситуаций в Python есть еще один способ создания строк, который называется multi-line строки. Чтобы описать такую «многострочную строку», нужно заключить ее в тройные кавычки — """
или '''
. Внутри multi-line строки можно переносить текст и не использовать перевод строки \n
:
text = '''Пример текста,
состоящего из
нескольких строк
'''
Пример текста,
состоящего из
нескольких строк
Обратите внимание, что в конце текста есть пустая строка. Она появилась в тексте потому, что мы поставили закрывающие кавычки '''
на новой строке. Если не переносить закрывающие кавычки на новую строку, то пустая строка в тексте не появится:
text = '''Пример текста,
состоящего из
нескольких строк'''
Пример текста,
состоящего из
нескольких строк
Из-за тройных кавычек multi-line строки позволяют не экранировать кавычки внутри строки:
Здесь не нужно экранировать 'одинарные' и "двойные" кавычки
Еще multi-line строки могут становиться f-строками для интерполяции:
a = 'A'
b = 'B'
# Слева добавился f
text = f'''{a} и {b}
сидели на трубе
'''
А и B
сидели на трубе
Для компьютера не важно, какие способы соединения и переноса строк вы будете использовать. Он все равно произведет вычисления и выдаст нужный результат. Интерполяция и multi-line строки используются для удобства разработчиков, чтобы им было проще читать код.
Вам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт