>>> setup.lower()
'a duck goes into a bar…'
Сменим регистры букв:
>>> setup.swapcase()
'a DUCK GOES INTO A BAR…'
Теперь мы поработаем с функциями выравнивания. Строка выравнивается внутри заданного количества пробелов (в данном примере 30).
Отцентруем строку в промежутке из 30 пробелов:
>>> setup.center(30)
'··a duck goes into a bar…···'
Выровняем ее по левому краю:
>>> setup.ljust(30)
'a duck goes into a bar…·····'
А теперь по правому:
>>> setup.rjust(30)
'·····a duck goes into a bar…'
О форматировании и преобразовании строк мы более подробно поговорим в главе 7. Там также будет затронуто использование символа % и функции format().
Заменяем символы с помощью функции replace()
Вы можете использовать функцию replace() для того, чтобы заменить одну подстроку другой. Вы передаете в эту функцию старую подстроку, новую подстроку и количество включений старой подстроки, которое нужно заменить. Если вы опустите последний аргумент, будут заменены все включения. В этом примере совпадает с заданным значением и заменяется следующая строка:
>>> setup.replace('duck', 'marmoset')
'a marmoset goes into a bar…'
Заменим максимум 100 включений:
>>> setup.replace('a ', 'a famous ', 100)
'a famous duck goes into a famous bar…'
Если вы точно знаете, какую подстроку или подстроки хотите изменить, функция replace() станет для вас хорошим выбором. Но будьте осторожны. Во втором примере, если бы мы заменили строку из одного символа 'а', а не строку из двух символов "а " (после а идет пробел), мы бы заменили символы 'а' и в середине слов:
>>> setup.replace('a', 'a famous', 100)
'a famous duck goes into a famous ba famousr…'
Иногда вам нужно убедиться, что подстрока является целым словом, началом слова и т. д. В этих случаях понадобятся регулярные выражения. Они подробно описаны в главе 7.
Больше действий со строками
В Python имеется гораздо больше функций для работы со строками, чем я сейчас описал. Некоторые из них мы рассмотрим в следующих главах, но вы можете найти описания их всех в стандартной документации (http://bit.ly/py-docs-strings).
Упражнения
В этой главе были показаны атомы Python: числа, строки и переменные. Выполним несколько небольших упражнений по работе с ними с помощью интерактивного интерпретатора.
1. Сколько секунд в часе? Используйте интерактивный интерпретатор как калькулятор и умножьте количество секунд в минуте (60) на количество минут в часе (тоже 60).
2. Присвойте результат вычисления предыдущего задания (секунды в часе) переменной, которая называется seconds_per_hour.
3. Сколько секунд в сутках? Используйте переменную seconds_per_hour.
4. Снова посчитайте количество секунд в сутках, но на этот раз сохраните результат в переменной seconds_per_day.
5. Разделите значение переменной seconds_per_day на значение переменной seconds_per_hour. Используйте деление с плавающей точкой (/).
6. Разделите значение переменной seconds_per_day на значение переменной seconds_per_hour. Используйте целочисленное деление (//). Совпадает ли полученный результат с ответом на предыдущее упражнение, если не учитывать символы.0 в конце?
Глава 3. Наполнение Python: списки, кортежи, словари и множества
В главе 2 мы начали с базовых типов данных Python: булевых значений, целочисленных значений, чисел с плавающей точкой и строк. Если представлять их как атомы, то структуры данных, которые мы рассмотрим в этой главе, можно назвать молекулами. Так и есть: мы объединим эти базовые типы в более сложные структуры. Вы будете использовать их каждый день. Бо́льшая часть работы программиста представляет собой разделение и склеивание данных в конкретные формы, поэтому сейчас вы узнаете, как пользоваться ножовками и клеевыми пистолетами.
Списки и кортежи
Большинство языков программирования могут представлять последовательность в виде объектов, проиндексированных с помощью их позиции, выраженной целым числом: первый, второй и далее до последнего. Вы уже знакомы со строками, они являются последовательностями символов. Вы уже немного знакомы со списками, они являются последовательностями, содержащими данные любого типа.
В Python есть еще две структуры-последовательности: кортежи и списки. Они могут содержать ноль или более элементов. В отличие от строк элементы могут быть разных типов. Фактически каждый элемент может быть любым объектом Python. Это позволяет создавать структуры любой сложности и глубины.