Выбрать главу

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 '

(1) >>> favorite_language = favorite_language.rstrip()

>>> favorite_language

'python'

Сначала пропуски удаляются в конце строки, а потом значение записывается в исходную переменную (1) . Операция изменения значения переменной с последующим его сохранением в исходной переменной часто выполняется в программировании. Так значение переменной может изменяться в ходе выполнения программы или в ответ на действия пользователя.

Пропуски также можно удалить у левого края (в начале) строки при помощи метода lstrip(), а метод strip() удаляет пропуски с обоих концов:

(1) >>> favorite_language = ' python '

(2)>>> favorite_language.rstrip()

' python'

(3)>>> favorite_language.lstrip()

'python '

(4) >>> favorite_language.strip()

'python'

В этом примере исходное значение содержит пропуски в начале и в конце (1) . Затем пропуски удаляются у правого края (2), у левого края (3) и с обоих концов строки (4). Поэкспериментируйте с функциями удаления пропусков, это поможет вам освоиться с работой со строками. На практике эти функции чаще всего применяются для «очистки» пользовательского ввода перед его сохранением в программе.

Предотвращение синтаксических ошибок в строках

Синтаксические ошибки встречаются в программах более или менее регулярно. Синтаксическая ошибка происходит тогда, когда Python не распознает часть вашей программы как действительный код Python. Например, если заключить апостроф в одиночные кавычки, случится ошибка. Это происходит из-за того, что Python интерпретирует все символы от первой одиночной кавычки до апострофа как строку. После этого Python пытается интерпретировать остаток текста строки как код Python, что порождает ошибки.