Обращайте внимание на пропуски, потому что в программах часто приходится сравнивать строки, чтобы проверить на совпадение их содержимое. Типичный пример — проверка имен пользователей при входе на сайт. Лишние пропуски могут создавать путаницу и в более простых ситуациях. К счастью, 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, что порождает ошибки.
Разберемся, как же правильно использовать одиночные или двойные кавычки. Сохраните следующую программу в файле apostrophe.py и запустите ее:
apostrophe.py
message = "One of Python's strengths is its diverse community."
print(message)
Апостроф находится в строке, заключенной в двойные кавычки, так что у интерпретатора Python не возникает проблем с правильной интерпретацией следующей строки:
One of Python's strengths is its diverse community.
Однако при использовании одиночных кавычек Python не сможет определить, где должна заканчиваться строка:
message = 'One of Python's strengths is its diverse community.'
print(message)
Программа выводит следующий результат:
. File "apostrophe.py", line 1
. .message = 'One of Python's strengths is its diverse community.'
. . . . . . . . . . . . . .^ (1)
SyntaxError: invalid syntax
Из выходных данных видно, что ошибка происходит в позиции (1) сразу же после второй одиночной кавычки. Эта синтаксическая ошибка указывает, что интерпретатор не распознает какую-то конструкцию как действительный код Python. Ошибки могут возникать по разным причинам; я буду выделять наиболее распространенные источники по мере того, как они будут встречаться нам.
Синтаксические ошибки будут часто досаждать вам, пока вы учитесь писать правильный код Python. Кроме того, ошибки этой категории также являются наиболее расплывчатыми и неконкретными, поэтому их особенно трудно находить и исправлять. Если вы зайдете в тупик из-за особенно коварной ошибки, обращайтесь к рекомендациям в приложении В.
примечание