Изучаем Python - страница 14

стр.

Конкатенация


Также часто возникает необходимость в объединении строк. Представьте, что имя и фамилия хранятся в разных переменных и вы хотите объединить их для вывода полного имени:

first_name = "ada"

last_name = "lovelace"

(1) full_name = first_name + " " + last_name


print(full_name)

Для объединения строк в Python используется знак «плюс» (+). В приведенном примере полное имя строится объединением first_name, пробел и last_name (1) :

ada lovelace

Такой способ объединения строк называется конкатенацией. Вы можете использовать конкатенацию для построения сложных сообщений с информацией, хранящейся в переменных. Рассмотрим пример:

first_name = "ada"

last_name = "lovelace"

full_name = first_name + " " + last_name


(1) print("Hello, " + full_name.title() + "!")

Полное имя используется в точке (1) для вывода приветственного сообщения, а метод title() обеспечивает правильное форматирование имени. Этот фрагмент возвращает простое, хорошо отформатированное сообщение:

Hello, Ada Lovelace!

Конкатенацией также можно воспользоваться для построения сообщения, которое затем сохраняется в переменной:

first_name = "ada"

last_name = "lovelace"

full_name = first_name + " " + last_name


(1) message = "Hello, " + full_name.title() + "!"

(2) print(message)

Этот код также выводит сообщение “Hello, Ada Lovelace!”, но сохранение текста сообщения в переменной (1) существенно упрощает завершающую команду ­печати (2).

Табуляции и разрывы строк


В программировании термином «пропуск» (whitespace) называются такие непечатаемые символы, как пробелы, табуляции и символы конца строки. Пропуски структурируют текст, чтобы пользователю было удобнее читать его.

Для включения в текст позиции табуляции используется комбинация символов \t, как в точке (1) :

>>> print("Python")

Python

(1) >>> print("\tPython")

. .Python

Разрывы строк добавляются с помощью комбинации символов \n:

>>> print("Languages:\nPython\nC\nJavaScript")

Languages:

Python

C

JavaScript

Табуляции и разрывы строк могут сочетаться в тексте. Скажем, последовательность "\n\t" приказывает Python начать текст с новой строки, в начале которой располагается табуляция.

Следующий пример демонстрирует вывод одного сообщения с разбиением на ­четыре строки:

>>> print("Languages:\n\tPython\n\tC\n\tJavaScript")

Languages:

. .Python

. .C

. .JavaScript

Разрывы строк и табуляции часто встречаются в двух следующих главах, когда наши программы начнут выводить относительно длинный текст.

Удаление пропусков


Лишние пропуски могут вызвать путаницу в программах. Для программиста строки 'python' и 'python ' внешне неотличимы, но для программы это совершенно разные строки. Python видит лишний пробел в 'python ' и считает, что он действительно важен — до тех пор, пока вы не сообщите о противоположном.

Обращайте внимание на пропуски, потому что в программах часто приходится сравнивать строки, чтобы проверить на совпадение их содержимое. Типичный пример — проверка имен пользователей при входе на сайт. Лишние пропуски могут создавать путаницу и в более простых ситуациях. К счастью, Python позволяет легко удалить лишние пропуски из данных, введенных пользователем.

Python может искать лишние пропуски у левого и правого края строки. Чтобы убедиться в том, что у правого края (в конце) строки нет пропусков, вызовите метод rstrip().

(1) >>> favorite_language = 'python '

(2)>>> favorite_language

'python '

(3)>>> favorite_language.rstrip()

'python'

(4)>>> favorite_language

'python '

Значение, хранящееся в переменной favorite_language в точке (1) , содержит лишние пропуски в конце строки. Когда вы приказываете Python вывести это значение в терминальном сеансе, вы видите пробел в конце значения (2). Когда метод rstrip() работает с переменной favorite_language в точке (3), этот лишний пробел удаляется. Впрочем, удаление лишь временное: если снова запросить значение favorite_language, мы видим, что строка не отличается от исходной, включая лишний пропуск (4).

Чтобы навсегда исключить пропуск из строки, следует записать усеченное значение обратно в переменную:

>>> favorite_language = 'python '