Наоми Седер - Python. Экспресс-курс

Тут можно читать онлайн Наоми Седер - Python. Экспресс-курс - бесплатно полную версию книги (целиком) без сокращений. Жанр: Программы, издательство Питер, год 2019. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Python. Экспресс-курс
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2019
  • ISBN:
    978-5-4461-0908-1
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Наоми Седер - Python. Экспресс-курс краткое содержание

Python. Экспресс-курс - описание и краткое содержание, автор Наоми Седер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Вы уже умеете кодить на одном или нескольких языках программирования? Тогда настала пора пройти экспресс-курс Python. Впервые на русском языке выходит новое издание одной из самых популярных книг издательства Manning. С помощью этой книги вы можете быстро перейти от основ к управлению и структурам данных, чтобы создавать, тестировать и развертывать полноценные приложения.
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.

Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)

Python. Экспресс-курс - читать книгу онлайн бесплатно, автор Наоми Седер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

>>> shallow[1] = 2

>>> shallow

[[0], 2]

>>> original

[[0], 1]

>>> shallow[0][0] = 'zero'

>>> original

[['zero'], 1]

Глубокая копия не зависит от оригинала, и из-

менения в ней не отражаются на исходном

списке:

>>> deep[0][0] = 5 deep 5 1 Рис 53 При поверхностном original копировании не - фото 37

>>> deep

[[5], 1] Рис. 5.3. При поверхностном

>>> original копировании не копируются

[['zero'], 1] вложенные списки

Это поведение присуще всем остальным вложенным объектам в изменяемых спи-сках (например, словарях).

Итак, теперь вы знаете, что можно сделать при помощи списков, и мы можем об-ратиться к кортежам.

ПОПРОБУЙТЕ.САМИ:.КОПИРОВАНИЕ.СПИСКОВ Имеется следующий список: x = [[1, 2,3], [4, 5, 6], [7, 8, 9]] . Какой код вы бы использовали для создания копии y этого списка, в которой элементы можно было бы изменять без побочного эффекта с изменением содержимого x ?

5.7. Кортежи

Кортеж как структура данных очень похож на список, но кортежи не могут из-меняться; их можно только создавать. Кортежи настолько похожи на списки, что у вас даже может возникнуть вопрос, для чего они были включены в Python. Дело в том, что у кортежей есть важные роли, которые не могут эффективно выполняться списками (например, роль ключей в словарях).

5.7.1. Знакомство с кортежами

Создание кортежа практически не отличается от создания списка: переменной присваивается последовательность значений. Список представляет собой последо-вательность, заключенную в квадратные скобки [ и ] ; кортеж представляет собой последовательность, заключенную в круглые скобки ( и ) : >>> x = ('a', 'b', 'c')

Эта строка создает кортеж из трех элементов.

После того как кортеж будет создан, операции с ним очень похожи на операции со списками — настолько, что разработчику легко забыть, что кортежи и списки являются разными типами данных:

>>> x[2]

'c'

>>> x[1:]

('b', 'c')

>>> len(x)

3

>>> max(x)

'c'

>>> min(x)

'a'

>>> 5 in x

False

>>> 5 not in x

Главное различие между кортежами и списками заключается в том, что кортежи неизменяемы. Попытка изменить кортеж приводит к выдаче невразумительного сообщения об ошибке. Так Python пытается сказать, что он не знает, как задать значение элемента кортежа:

>>> x[2] = 'd'

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment Кортежи можно создавать на основе существующих списков при помощи опера-торов + и * :

>>> x + x

('a', 'b', 'c', 'a', 'b', 'c')

>>> 2 * x

('a', 'b', 'c', 'a', 'b', 'c')

Копии кортежей создаются теми же способами, что и копии списков: >>> x[:]

('a', 'b', 'c')

>>> x * 1

('a', 'b', 'c')

>>> x + ()

('a', 'b', 'c')

Если вы не прочитали раздел 5.6, оставшуюся часть этого абзаца можно пропустить. Сами кортежи изменяться не могут, но если они содержат изменяемые объекты (на-пример, списки или словари), такие объекты могут изменяться, если они все еще связаны со своими собственными переменными. Кортежи, содержащие изменяемые объекты, не могут использоваться в качестве ключей в словарях.

5.7.2. Одноэлементные кортежи должны содержать запятуюС использованием кортежей связана одна синтаксическая тонкость. Так как квадратные скобки, в которые заключаются списки, в Python больше нигде не ис-пользуются, понятно, что [] обозначает пустой список, а [1] обозначает список из одного элемента. О круглых скобках, в которые заключаются кортежи, этого сказать нельзя. Круглые скобки также могут использоваться для группировки элементов выражений с целью обеспечения определенного порядка вычисления. Допустим, в программе Python встречается запись (x + y) , что это должно означать? Что x и y нужно сложить и поместить в кортеж из одного элемента или же что x и y следует сложить до обработки любых других частей выражения? Эта ситуация создает проблемы только для кортежей из одного элемента, потому что кортежи с несколькими элементами всегда содержат запятые, которыми раз-деляются элементы. По наличию запятых Python понимает, что круглые скобки обозначают кортеж, а не способ группировки. Для устранения неоднозначности в случае одноэлементного кортежа Python требует, чтобы за элементом кортежа

следовала запятая. В случае кортежа с нулем элементов (пустым кортежем) проблем нет. Пустая пара круглых скобок должна быть кортежем, потому что в противном случае она не имеет смысла:

>>> x = 3

>>> y = 4

>>> (x + y) # Эта строка суммирует x и y.

7

>>> (x + y,) # Запятая показывает, что круглые скобки обозначают кортеж. (7,)

>>> () # Пустая пара скобок создает пустой кортеж.

()

5.7.3. Упаковка и распаковка кортежей

Для удобства Python позволяет размещать кортежи в левой части оператора при-сваивания. В этом случае переменным из кортежа присваиваются соответствующие значения из кортежа в правой части оператора. Простой пример: >>> (one, two, three, four) = (1, 2, 3, 4)

>>> one

1

>>> two

2

Этот пример можно записать еще проще, потому что Python распознает кортежи в контексте присваивания даже без круглых скобок. Значения в правой части упаковываются в кортеж, а затем распаковываются в переменные из левой части: one, two, three, four = 1, 2, 3, 4

Одна строка кода заменила целых четыре строки:

one = 1

two = 2

three = 3

four = 4

Это удобный способ перестановки значений двух переменных. Вместо того чтобы использовать запись

temp = var1

var1 = var2

var2 = temp

достаточно написать

var1, var2 = var2, var1

Чтобы разработчику было еще удобнее, в Python 3 появился расширенный син-таксис распаковки, который позволяет элементу с пометкой * поглотить любое количество элементов, не имеющих парного элемента. И снова примеры будут более понятными, чем описание:

>>> x = (1, 2, 3, 4)

>>> a, b, *c = x

>>> a, b, c

(1, 2, [3, 4])

>>> a, *b, c = x

>>> a, b, c

(1, [2, 3], 4)

>>> *a, b, c = x

>>> a, b, c

([1, 2], 3, 4)

>>> a, b, c, d, *e = x

>>> a, b, c, d, e

(1, 2, 3, 4, [])

Обратите внимание: все лишние элементы сохраняются в элементе со звездочкой в виде списка, а при отсутствии лишних элементов элементу со звездочкой при-сваивается пустой список.

Упаковка и распаковка также могут выполняться с ограничителями списков: >>> [a, b] = [1, 2]

>>> [c, d] = 3, 4

>>> [e, f] = (5, 6)

>>> (g, h) = 7, 8

>>> i, j = [9, 10]

>>> k, l = (11, 12)

>>> a

1

>>> [b, c, d]

[2, 3, 4]

>>> (e, f, g)

(5, 6, 7)

>>> h, i, j, k, l

(8, 9, 10, 11, 12)

5.7.4. Преобразования между списками и кортежамиКортежи легко преобразуются в списки функцией list , которая получает в ар-гументе любую последовательность и строит новый список с элементами из ис-ходной последовательности. Аналогичным образом список можно преобразовать в кортеж функцией tuple , которая делает то же самое, но создает новый кортеж вместо нового списка:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Наоми Седер читать все книги автора по порядку

Наоми Седер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Python. Экспресс-курс отзывы


Отзывы читателей о книге Python. Экспресс-курс, автор: Наоми Седер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x