...

пятница, 14 октября 2016 г.

[Из песочницы] Python-шпаргалка. Часть 1 — Язык и Типы объектов

image

Данная статья представляет собой очень краткую, но емкую выжимку всего, что должен знать начинающий разработчик или QA-инженер о языке Python. Надеюсь, что усердие, приложенное при написании данной статьи, поможет многим подготовиться к собеседованиям на соответствующие вакансии и расширить свой IT-кругозор.

Статью стоит воспринимать не как учебник, а как удобную шпаргалку или «опорный сигнал» (так моя учительница истории называла подобное «творчество» в школе). Здесь не будет подробных определений, объяснений в целую главу, а лишь четкие термины, списки, краткие выжимки кода. Статья основана на замечательной книге Марка Лутца «Изучаем Python (5-е издание)», так что за её корректность и достоверность можете не переживать. Итак, начнем.

Вкратце о Python


Python — высокоуровневый язык программирования общего назначения (часто называется языком сценариев), ориентированный на повышение производительности разработчика и читаемости кода.
Преимущества Python:
  • Качество ПО
  • Высокая скорость разработки
  • Переносимость программ
  • Библиотеки поддержки
  • Интеграция компонентов (можно вызывать функции из библиотек C/C++)

Основные возможности Python:
  • Динамическая типизация (при этом она строгая)
  • Автоматическое управление памятью
  • Модульное программирование
  • Встроенные типы объектов
  • Библиотеки утилит

Процесс запуска программ:
  • Сценарий компилируется (перевод программы) в байт-код (платформонезависимое представление исходного текста программы, .pyc файл)
  • Байт-код передается виртуальной машине PVM.

Сравнение с C/C++:
  • Отсутствует этап сборки
  • Байт код не является двоичным машинным кодом (не может выполняться так же быстро)

Альтернативные реализации Python:
  • CPython (реализация на ANSI C)
  • Jython (реализация на Java классах)
  • IronPython (реализация для использования с .Net)

Типы объектов в Python


Данные в Python представляется в форме объектов — либо встроенных, либо создаваемых с помощью конструкций языка Python или других (например С).
Программы <= Модули <= Инструкции <=Выражения

Формы отображения объектов:
  • repr (в виде программного кода, например 6.28300000000004)
  • str (более читаемый, например 6.283)

Строка — неизменяемая последовательность (упорядоченная коллекция) других объектов (односимвольных строк) в языке Python.
Некоторые операции над последовательностями:
  • len(s) — длина
  • s[0] — обращение к элементу
  • s[-1] — обращение к элементу с конца последовательности
  • s[1:3] — срез начиная со смещения 1 и до 2 (не 3)
  • s[:] — скопировать все содержимое (не путать с a=s)
  • s*8 — повторение
  • s+’xyz’ — конкатенация

Особые символы табуляции:
  • \n — конец строки
  • \t — табуляция
  • ord(‘\n’) — байт с числовым значением
  • ‘A\0B\0C’ — \0 двоичный ноль

[Hint] Чтобы вывести все доступные методы у переменной: dir(s)
Списки (lists) – это упорядоченные по местоположению коллекции объектов произвольных типов, размер которых не ограничен.
Списки являются последовательностями => поддерживают все операции над последовательностями. Единственное отличие состоит в том, что результатом таких операций являются списки, а не строки.
Преимущества списков:
  • Возможность создавать вложенные списки
  • Использование выражений генераторов списков

col2 = [row[1] for row in M]


Словари (dictionary) — не являются последовательностями, это коллекции объектов, где доступ к ним осуществляется не по определенным смещениям от начала коллекции, а по ключам. Изменяемый тип. Также возможна вложенность.
D = {'food': 'Spam', 'quantity': 4, 'color': 'pink'}

или
D = {}
D['name'] = 'Bob'


Кортеж (tuple) — список, который невозможно изменить. Кортежи являются последовательностями, как списки, но они являются неизменяемыми, как строки. Возможна вложенность. Возможно одновременное хранение объектов разных типов.
T = (1, 2, 3, 4)


Объекты-файлы — это основной интерфейс между программным кодом на языке Python и внешними файлами на компьютере. Файлы являются одним из базовых типов, но они представляют собой нечто необычное, поскольку для файлов отсутствует возможность создания объектов в виде литералов. Вместо этого, чтобы создать объект файла, необходимо вызвать встроенную функцию open, передав ей имя внешнего файла и строку режима доступа к файлу.
f = open('data.txt', 'w') # Создается новый файл для вывода


Самый лучший на сегодняшний день способ чтения файлов состоит в том, чтобы не читать его содержимое целиком – файлы предоставляют итераторы, которые обеспечивают автоматическое построчное чтение содержимого файла в циклах for и в других контекстах.
Множества — это неупорядоченные коллекции уникальных и неизменяемых объектов. Множества создаются встроенной функцией set.
X = set('spam') # В 2.6 и 3.0 можно создавать из последовательностей
Y = {'h', 'a', 'm'} # В 3.0 можно определять литералы множеств
X, Y
({'a', 'p', 's', 'm'}, {'a', 'h', 'm'})
X & Y # Пересечение
{'a', 'm'}
X | Y # Объединение
{'a', 'p', 's', 'h', 'm'}
X – Y # Разность
{'p', 's'}

Комментарии (0)

    Let's block ads! (Why?)

    Комментариев нет:

    Отправить комментарий