Наоми Седер - Python. Экспресс-курс
- Название:Python. Экспресс-курс
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0908-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Наоми Седер - Python. Экспресс-курс краткое содержание
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.
Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
6.4.6. Изменение строк и операции со спискамиТак как строки являются неизменяемыми объектами, вы не можете манипулировать с ними напрямую по аналогии с тем, как вы манипулируете со списками. И хотя операции, создающие новые строки (оставляющие исходные строки без измене-ния), полезны во многих ситуациях, иногда бывает удобно работать со строкой так, словно она представляет собой список символов. В таких ситуациях следует преобразовать строку в список символов, выполнить нужные операции, а затем преобразовать полученный список обратно в строку: >>> text = "Hello, World"
>>> wordList = list(text)
>>> wordList[6:] = [] Удаляет все после запятой
> >> wordList.reverse()
>>> text = "".join(wordList)
>>> print(text) Объединение без пробелов
,olleH
Также можно преобразовать строку в кортеж символов встроенной функцией tuple . Для преобразования строки обратно в список используется функция "".join() .
Не увлекайтесь этим методом, потому что он требует создания и уничтожения но-вых объектов строк, что обходится относительно дорого. Обработка сотен и тысяч строк не повлияет на вашу программу, но с обработкой миллионов строк ситуация может измениться.
БЫСТРАЯ.ПРОВЕРКА:.ИЗМЕНЕНИЕ.СТРОК
Как быстро заменить все знаки препинания в строке пробелами?
6.4.7. Полезные методы и константы
У объектов строк также есть несколько полезных методов для получения разных характеристик строк — например, содержит ли строка только цифры или алфавит-ные символы либо только символы верхнего или нижнего регистра: >>> x = "123"
>>> x.isdigit()
True
>>> x.isalpha()
False
>>> x = "M"
>>> x.islower()
False
>>> x.isupper()
True
За списком всех возможных методов string обращайтесь к соответствующему раз-делу официальной документации Python.
Наконец, модуль string определяет ряд полезных констант. Вы уже видели кон-станту string.whitespace — строку, которая состоит из всех символов, которые Python относит к категории пропусков в вашей системе. Константа string.digits содержит строку '0123456789' . Константа string.hexdigits включает все символы string.digits , а также 'abcdefABCDEF' — дополнительные символы, используемые в шестнадцатеричных числах. Константа string.octdigits содержит '01234567' — цифры, допустимые в восьмеричных числах. Константа string.ascii_lowercase со-держит все алфавитные символы ASCII нижнего регистра; string. ascii_uppercase содержит все алфавитные символы ASCII верхнего регистра; string. ascii_letters содержит все символы string. ascii_lowercase и string. ascii_uppercase . Воз-можно, вам захочется присвоить новое значение этим константам, чтобы изменить поведение языка. Python разрешит выполнить это действие, но скорее всего, добром это не кончится.
Помните, что строки являются последовательностями символов. Это позволяет использовать удобный оператор in языка Python для проверки принадлежности символа к любой из этих строк, хотя обычно существующие методы строк проще и удобнее. Самые распространенные операции со строками перечислены в табл. 6.2.
Таблица 6.2. Распространенные операции со строками

Помните, что эти методы не изменяют саму строку; они возвращают либо позицию в строке, либо новую строку.
ПОПРОБУЙТЕ.САМИ:.ОПЕРАЦИИ.СО.СТРОКАМИ Допустим, имеется список строк, в котором некоторые (но не обязательно все) строки начинаются и завершаются символом двойной кавычки: x = ['"abc"', 'def', '"ghi"', '"klm"', 'nop']
Какой код вы бы использовали для удаления только двойных кавычек из каж-дого элемента?
Какой код вы бы использовали для нахождения позиции последней буквы p в слове Mississippi ? А после того, как эта позиция будет найдена, какой код вы бы использовали для удаления только этой буквы?
6.5. Преобразование объектов в строкиВ языке Python почти любой тип можно преобразовать в строковое представление вызовом встроенной функции repr . Списки — единственный сложный тип данных Python, который вам встречался ранее, поэтому мы преобразуем несколько списков в их строковые представления:
>>> repr([1, 2, 3])
'[1, 2, 3]'
>>> x = [1]
>>> x.append(2)
>>> x.append([3, 4])
>>> 'the list x is ' + repr(x)
'the list x is [1, 2, [3, 4]]'
Этот пример использует функцию repr для преобразования списка x в строковое представление, которое затем объединяется с другой строкой для формирования итоговой строки. Без repr этот код работать не будет. Что именно суммируется в выражении вида "string" + [1, 2] + 3 — строки, списки или числа? Python не знает ваших намерений в такой ситуации, поэтому он выбирает безопасный вариант (выдает ошибку) вместо того, чтобы делать предположения. В предыдущем при-мере все элементы необходимо преобразовать в строковые представления, чтобы сработала конкатенация строк.
Списки — единственная разновидность сложных объектов Python, рассмотренных до настоящего момента, но repr может использоваться для получения стро кового пред-ставления практически любых объектов Python. Чтобы убедиться в этом, попробуйте вызвать repr для встроенного сложного объекта — функции Python: >>> repr(len)
''
Python не выдает строку с кодом реализации функции len , но по крайней мере возвращает строку — — с описанием функции. Если вы опробуете функцию repr для каждого типа данных Python (словари, кортежи, классы и т. д.), упоминаемого в книге, вы увидите, что независимо от типа объекта Python вы получите строку, которая содержит некоторую информацию об объекте. Эта возможность очень полезна для отладки программ. Если вы сомневаетесь в том, какие данные хранятся в переменной в определенной точке программы, используйте функцию repr и выведите содержимое этой переменной. Итак, теперь вы знаете, как Python может преобразовать любой объект в строку с описанием этого объекта. По правде говоря, Python может сделать это двумя способами. Функция repr всегда возвращает то, что можно назвать формальным строковым представлением объекта Python. Если говорить конкретнее, repr воз-вращает строковое представление объекта Python, по которому можно восстановить исходный объект. Для больших сложных объектов это может быть не тот результат, который вам хотелось бы видеть в отладочном выводе или в отчетах состояния. Python также предоставляет встроенную функцию str . В отличие от repr , str выводит печатные строковые представления и может применяться к любым объ-ектам Python. str возвращает то, что можно назвать неформальным строковым представлением объекта. Строка, возвращаемая str , не обязана определять объект полностью; она предназначена для чтения человеком, а не кодом Python. Когда вы начнете пользоваться repr и str , вы не заметите никаких различий между ними, потому что до того, как вы начнете пользоваться объектно-ориентированными возможностями Python, никаких различий нет. При вызове для любого встроенного объекта Python str всегда вызывает repr для получения результата. Только когда
Читать дальшеИнтервал:
Закладка: