Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.



Главная
Все книги
Назад
Читать: Изучаем Python. Программирование игр, визуализация данных, веб-приложения - Эрик Мэтиз на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

"One of Python's strengths is its diverse and supportive community."

Рассмотрим некоторые типичные операции со строками.

Изменение регистра символов в строках

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

name.py

name = "ada lovelace"

print(name.title())

Сохраните файл с именем name.py и запустите его. Вывод программы должен выглядеть так:

Ada Lovelace

В этом примере в переменной name сохраняется строка, состоящая из букв нижнего регистра "ada lovelace". За именем переменной в команде print() следует вызов метода title(). Метод представляет собой действие, которое Python выполняет с данными. Точка (.) после name в конструкции name.title() приказывает Python применить метод title() к переменной name. За именем метода всегда следует пара круглых скобок, потому что методам для выполнения их работы часто требуется дополнительная информация. Эта информация указывается в скобках. Функции title() дополнительная информация не нужна, поэтому в круглых скобках ничего нет.

Метод title() преобразует первый символ каждого слова в строке к верхнему регистру, тогда как все остальные символы выводятся в нижнем регистре. Например, данная возможность может быть полезна, если в вашей программе входные значения Ada, ADA и ada должны рассматриваться как одно и то же имя, и все они должны отображаться в виде Ada.

Для работы с регистром также существуют другие полезные методы. Например, все символы строки можно преобразовать к верхнему или нижнему регистру:

name = "Ada Lovelace"

print(name.upper())

print(name.lower())

Программа выводит следующий результат:

ADA LOVELACE

ada lovelace

Метод lower() особенно полезен для хранения данных. Нередко программист не может рассчитывать на то, что пользователи введут все данные с точным соблюдением регистра, поэтому строки перед сохранением преобразуются к нижнему регистру. Затем, когда потребуется вывести информацию, используется регистр, наиболее подходящий для каждой строки.

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

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

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 '

(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 и запустите ее:



Поделиться книгой:



Регистрация