Рассмотрим некоторые типичные операции со строками.
Изменение регистра символов в строках
Одна из простейших операций, выполняемых со строками, – изменение регистра символов. Взгляните на следующий фрагмент кода и попробуйте определить, что в нем происходит:
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 ' и считает, что он действительно важен — до тех пор, пока вы не сообщите о противоположном.