С чего начать изучать
Программирование похоже на занятия спортом. Чтобы чего-то достичь, нужно усердно тренироваться: ежедневно выделять несколько часов на изучение.
Главное — понять основы. Заходите на YouTube и смотрите бесплатные уроки, читайте официальное руководство, книги и много практикуйтесь.
Майкл Доусон «Программируем на Python»
Марк Лутц «Изучаем Python»
Пол Бэрри «Изучаем программирование на Python»
Тони Гэддис «Начинаем программировать на Python»
Большая подборка книг со ссылками на скачивание в Телеграм-канале Python книги
Каналы питонистов Python Academy, Python School
Онлайн-университет Skypro обучает Python за 10 месяцев. Подойдет тем, кто не знает, как начать с нуля. Или работает в смежной области и хочет сменить профессию. Пройдите обучение в реальной рабочей среде с практикующими наставниками, освойте главное по 40-минутным лекциям и заданиям. Задавайте вопросы в любое время куратору в чате и раз в неделю на живом вебинаре.
В конце получите диплом о профессиональной переподготовке. Рекрутер поможет составить цепляющее резюме и подготовиться к собеседованиям. Доступ к материалам курса остается у вас навсегда.
Заключительные слова
Это были некоторые из преимуществ использования Python. К этому моменту вы должны были получить четкое представление о том, почему Python для работы с большими данными считается наиболее подходящим. Python – это простой язык с открытым исходным кодом, обладающий высокой скоростью работы и отличным наборов библиотек.
“Большие данные лежат в основе всех происходящих мегатрендов”. -Крис Линч
С использованием технологии обработки больших данных, распространяющейся по всему миру, удовлетворение требований этой отрасли, конечно же, представляет собой сложную задачу. Но благодаря своим невероятным преимуществам, Python стал подходящим выбором для работы с большими данными. Вы также можете воспользоваться Python в своем бизнесе, чтобы воспользоваться его преимуществами.
Перевод статьи «Why is Python Programming a perfect fit for Big Data?».
Рекомендуемые требования для Python 2.x:
Операционная система:
Python 2.x рекомендуется устанавливать на операционные системы Windows 7 и выше, Mac OS X 10.7 и выше, Ubuntu 12.04 и выше, а также на другие современные дистрибутивы Linux. На старых версиях операционных систем устанавливать Python возможно, но могут появляться проблемы совместимости и устаревшие версии некоторых библиотек.
Процессор:
Python 2.x должен работать на любых процессорах семейства x86 (32-bit) и x64 (64-bit). Рекомендуется использовать процессор с частотой не менее 1 ГГц.
Оперативная память:
Для бесперебойной работы Python 2.x требуется не менее 256 МБ оперативной памяти. Однако, для работы с большими объемами данных может потребоваться более 1 ГБ оперативной памяти.
Жесткий диск:
Для установки Python достаточно 30 МБ свободного места на жестком диске. Однако, для работы с большими объемами данных рекомендуется иметь не менее 100 ГБ свободного места на жестком диске.
Графический интерфейс:
Python 2.x может быть использован как через консольный интерфейс, так и с использованием графических библиотек. Если планируется использование графического интерфейса, рекомендуется иметь видеокарту, поддерживающую OpenGL.
Выполнение программного кода
В интерактивном режиме результаты выполнения инструкций выводятся сразу после их ввода. То есть вводится первая инструкция, которая сразу выполняется, потом вводится вторая инструкция и т. д. Интерактивный режим целесообразно использовать на этапе изучения синтаксиса языка, когда нужно убедиться в правильности выполнения отдельных инструкций после их введения. А также для тестирования участков кода и отдельных команд программы.
Интерактивный режим работы является достаточно удобным для обучения. Но программный код, который вводится в интерактивном режиме, не сохраняется: он исчезает сразу после того, как интерпретатор языка Python его выполнит. Для повторного выполнения программного кода нужно ввести код заново, что является существенным недостатком интерактивного режима.
Чтобы постоянного использования программы, коды необходимо сохранять в файлах, которые, как ранее отмечалось, называют модулями. Файлы модулей — это программы, которые называют также сценариям, хотя между ними есть небольшая разница. Имя файла может не содержать расширения. Но если предполагается импортировать программный код из других файлов, то имя файла должно содержать расширение .py.
Файл программного кода интерпретатор может выполнять неограниченное количество раз. После запуска кода на выполнение интерпретатор выполняет последовательно одну инструкцию за другой в порядке их расположения и выдает результат на экран монитора. Если в программном коде будет обнаружена синтаксическая ошибка, соответствующее сообщение выводится на экран.
Структуры данных и операторы
Основа любой программы — это структуры данных, которые позволяют хранить информацию различных типов и структур. Среди них можно выделить списки, словари, кортежи, множества и другие структуры, которые помогают эффективно организовывать данные и работать с ними.
Операторы в Python позволяют выполнять различные действия над данными, сравнивать их, объединять, разделять и многое другое. Понимание работы операторов поможет вам эффективно писать код и выполнять различные задачи в программировании. Ниже — примеры некоторых из них.
Оператор | Описание |
---|---|
+ | Оператор сложения для чисел и конкатенации для строк |
* | Оператор умножения для чисел и умножения строк на число |
= | Оператор присваивания значения переменной |
== | Оператор сравнения на равенство |
Влияние размера Python на производительность
Размер Python, представленный в виде объема занимаемой памяти, может иметь влияние на производительность программы, особенно при работе с большими объемами данных или при выполнении вычислительно сложных задач. Более объемный язык программирования может замедлить процесс выполнения программы и потребовать больше ресурсов компьютера.
Однако, следует помнить, что влияние размера Python на производительность зависит не только от объема занимаемой памяти, но и от эффективности и оптимизации самого языка и кода. Так, например, в Python существуют библиотеки и инструменты для оптимизации и ускорения работы программы, такие как NumPy или Cython, которые позволяют эффективно работать с большими массивами данных или компилировать код на Python в более быстрый машинный код.
Также, использование правильных алгоритмов и структур данных в коде может существенно повлиять на производительность программы, даже при работе с объемным языком, таким как Python. Правильно оптимизированный код может значительно уменьшить зависимость производительности от размера языка и обеспечить более эффективную работу программы в целом.
Чтение файла целиком[править]
Итак, метод readline читает файл построчно: при каждом новом вызове читается следующая строка. У файлов имеется и другой метод чтения, залпом — read, читающий файл целиком, возвращая его в виде одной строки:
>>> infile = open('data1.txt', 'r') >>> filestr = infile.read() >>> filestr '21.8\n18.1\n19\n23\n26\n17.8\n' >>> print filestr 21.8 18.1 19 23 26 17.8
В этом интерактивном примере легко можно отметить разницу между filestr и print filestr. Как видно, это не список строк, а одна строка вместе с символами перехода на новую строку \n. А строки, как мы узнаем позже, обладают довольно большой функциональностью. Ясно, что чтобы съесть эту строку, нам нужен нож. В качестве него выступает метод строк split, который разрезает их на слова:
>>> words = filestr.split() >>> words '21.8', '18.1', '19', '23', '26', '17.8' >>> numbers = float(w) for w in words >>> mean = sum(numbers)len(numbers) >>> print mean 20.95
Более компактное элегантное решение:
infile = open('data1.txt', 'r') numbers = float(w) for w in infile.read().split()] mean = sum(numbers)len(numbers)
История Python
В конце 1980-х годов сотрудником голландского национального института математики и информатики GWI Гвидо ван Россумом (Guido van Rossum) была предложена идея создания нового языка программирования…
В то время Гвидо участвовал в разработке учебного языка ABC, как базы для изучения программирования. Проект ABC в итоге не увенчался успехом и Гвидо перешел к программированию в другие проекты, где ключевой темой была операционная система Amoeba (объединяющая компьютеры в сети и дающая пользователям иллюзию взаимодействия с единой системой).
Из интервью Гвидо ван Россума:
«Я не знаю, насколько хорошо люди знают влияние ABC на Python. Я стараюсь упомянуть влияние ABC, потому что я обязан всему, чему я научился во время этого проекта, и людям, которые над ним работали. Дизайн ABC был очень легким и чётким. ABC задумывался как язык программирования, которому можно было обучить продвинутых пользователей компьютеров, которые не были программистами или разработчиками программного обеспечения.
Авторы ABC начали разрабатывать язык в конце 70-х — начале 80-х годов. Я присоединился к команде в 1983 году. Думаю, мы работали до 1986 или 1987 года. По разным причинам проект ABC не имел большого успеха. В 1986 году я перешел в другой проект в CWI, проект Amoeba.
К концу 1980-х мы обнаружили, что нам нужен язык сценариев. В этом проекте у меня была большая степень свободы, чтобы начать свой собственный мини-проект в рамках того, что мы делали. Я вспомнил весь свой опыт и некоторые разочарования в ABC. Я решил попробовать создать простой язык сценариев, который обладал бы некоторыми из лучших свойств ABC, но без проблем.
Итак, я начал печатать. Я создал простую виртуальную машину, простой парсер и простую среду выполнения. Я сделал свою собственную версию различных частей ABC, которые мне понравились. Я создал базовый синтаксис, использовал отступы для группировки операторов вместо фигурных скобок или блоков начала-конца и разработал небольшое количество мощных типов данных: словарь, список, строки и числа.
Я взял ингредиенты ABC и немного их перемешал. Python во многом был похож на ABC, но были и отличия. Списки, словари, базовые операторы Python и использование отступов отличались от того, что было у ABC. ABC использовала заглавные буквы для ключевых слов. В Python ключевые слова были строчными. Я думаю, что моим самым инновационным вкладом в успех Python было облегчение его расширения.»
С самого начала язык проектировался как объектно-ориентированный. Гвидо ван Россум назвал язык в честь популярного британского комедийного телешоу 1970-х «Monty Python’s Flying Circus», поскольку автор был поклонником этого телешоу, как и многие другие разработчики того времени, а в самом шоу прослеживалась некая параллель с миром компьютерной техники.
В феврале 1991 года Гвидо опубликовал в группе новостей исходный текст Python версии 0.9.0. В этом начальном релизе были модули, заимствованные из Modula-3. Ван Россум описывал модуль как «один из главных элементов в программировании на Python».
Python 1.0 появился в январе 1994 года. Последней версией, выпущенной Ван Россумом во время работы в центре математики и информатики (CWI), был Python 1.2.
Минимальные требования для Python 2.x:
Операционная система:
Python 2.x поддерживает операционные системы Windows, macOS, Linux и Unix. Для Windows рекомендуется версия XP SP3 и выше.
Процессор:
Для установки и запуска Python 2.x необходим процессор, поддерживающий инструкционный набор x86 с тактом не менее 1 ГГц.
Память:
Для выполнения простых программ на Python 2.x достаточно 256 МБ оперативной памяти. Если же речь идет о более серьезных задачах, то рекомендуется не меньше 512 МБ.
Периферийные устройства:
Python 2.x использует стандартное ввод/выводное устройство, поэтому дополнительные периферийные устройства не требуются.
Дополнительное ПО:
Для работы Python 2.x может потребоваться дополнительное ПО, такое как библиотеки. Однако, это зависит от конкретных задач и требований программы.
Но что, если скорость действительно важна?
Мои рассуждения выше могли сложить мнение, что оптимизация и скорость выполнения программы вообще не имеют значения. Во многих случаях это не так. Например, у вас есть веб-приложение и некоторый endpoint, который уж очень тормозит. У вас могут быть даже определённые требования на этот счёт. Наш пример строится на некоторых предположениях:
- есть некоторый endpoint, который выполняется медленно
- есть некоторые метрики, определяющие насколько медленными может быть обработка запросов
Мы не будем заниматься микро-оптимизацией всего приложения. Всё должно быть «достаточно быстро». Ваши пользователи могут заметить, если обработка запроса занимает секунды, но они никогда не заметят разницу между 35 мс и 25 мс. Вам нужно лишь сделать приложение «достаточно хорошим».
Дисклаймер
Чтобы понять как оптимизировать, мы должны сначала понять что именно надо оптимизировать. В конце концов:
Если оптимизация не устраняет узкого места приложения, то вы просто потратите впустую своё время и не решите реальную проблему. Вы не должны продолжать разработку, пока не исправите тормоза. Если вы пытаетесь оптимизировать нечто, не зная конкретно что, то вряд ли результат вас удовлетворит. Это и называется «преждевременной оптимизацией» — улучшение производительности без каких-либо метрик. Д. Кнуту часто приписывают следующую цитату, хотя он утверждает, что она не его:
Если быть точным, то более полная цитата:
Другими словами, здесь говорится, что большую часть времени вам не нужно думать об оптимизации. Код и так хорош А в случае, когда это не так, нужно переписать не более 3% Вас никто не похвалит, если вы сделаете обработку запроса на несколько наносекунд быстрее. Оптимизируйте то, что поддаётся измерению.
Преждевременная оптимизация, как правило, заключается в вызове более быстрых методов <прим пер. видимо, подразумеваются ассемблерные вставки> или использовании специфичных структур данных из-за их внутренней реализации. В университете нас учили, что если два алгоритма имеют одну асимптотику Big-O, то они эквивалентны. Даже если один из них в 2 раза медленнее. Компьютеры сейчас настолько быстры, что вычислительную сложность пора измерять на большом количестве данных. То есть, если у вас есть две функции O(log n), но одна в два раза медленнее другой, то это не имеет большого значения. По мере увеличения размера данных они обе начинают показывать примерно одно и то же время выполнения. Вот почему преждевременная оптимизация — это корень всего зла; Это тратит наше время и практически никогда не помогает нашей общей производительности.
В терминах Big-O все языки программирования имеют сложность O(n), где n — кол-во строк кода или инструкций. Не имеет значения, насколько медленным будет язык или его виртуальная машина — все они имеют общую асимптоту. <прим. пер. автор имеет ввиду, что даже если сейчас язык X в два раза медленнее Y, то в будущем после оптимизаций они будут примерно равны по скорости> В соответствии с этим рассуждением можно сказать, что «быстрый» язык программирования всего лишь преждевременно оптимизированный, причём непонятно по каким метрикам.
Объекты и ссылки в Python
В Python не переменные, а имена. Каким образом Python хранит объекты в памяти? Это цепочка из имен (names), ссылок (references) и объектов (objects).
Каждому объекту может быть присвоено много имен, например, А, B, X, Y и так далее. Все эти имена ссылаются на этот объект.
Представим себе две разные категории объектов. У нас есть простые объекты (числа и строки). Они простые в том, их значение хранится только в одном месте в памяти.
Еще у нас есть объекты-контейнеры (словари, списки и определенные пользователем классы). Они могут хранить ссылки на простые объекты и даже на другие контейнеры или объекты контейнерного типа.
Где и как применяют
Чаще Python применяют в веб-разработке и data-science. На нем написали Instagram (организация признана экстремистской и запрещена на территории России) и DropBox. Netflix и Spotify использовали Python для анализа пользовательских данных. А также с его помощью создали сервисы персональных рекомендаций.
Вот краткий список сфер применения Python.
Веб-разработка. Чтобы дополнить функционал Python, используют фреймворки по типу Django, Pyramid или Flask.
Софт. На Python писали некоторые десктопные программы, например, BitTorrent-клиент.
Игры. Модули игр EVE Online, Battlefield 2, World of Tanks создавали на Python.
Встроенные системы. Python используют в компьютерах Raspberry Pi для работы с датчиками через GPIO. И в Сбере — для управления банкоматами.
Программные скрипты. На Python пишут плагины и скрипты к готовым программам. Этот язык применяют для анимации в Disney.
Системное администрирование. На Python работают практически все серверы ОС Linux.
Data science. IT-гиганты — Amazon, Facebook (организация признана экстремистской и запрещена на территории России), Google — обслуживают хранилища данных и облачные сервисы при помощи Python.
Оптимизация Python: стремление к минимизации размера файлов
Размер файлов имеет важное значение при разработке программ на языке Python. Большие файлы могут замедлить процесс загрузки и увеличить потребление памяти
Поэтому оптимизация размера файлов является важной задачей для программистов, стремящихся сохранить высокую производительность своих приложений.
Есть несколько способов минимизировать размер файлов Python:
Удаление лишнего кода: Периодическое просматривание кода приложения и удаление неиспользуемых или устаревших частей может существенно сократить размер файла
Важно следить за тем, чтобы не удалить нужные функции или модули.
Оптимизация импортов: Вместо импорта всего модуля можно импортировать только нужные функции или классы. Это позволяет избежать загрузки неиспользуемого кода и уменьшить размер файла.
Сжатие файлов: Применение алгоритмов сжатия, таких как gzip или zlib, может сократить размер файлов
Однако, при выполнении программы будет добавлено время на восстановление сжатых файлов.
Также стоит обратить внимание на использование сторонних библиотек:
- Выбор минимально необходимых библиотек: Необходимо внимательно выбирать библиотеки, которые будут использоваться в проекте. Некоторые библиотеки могут быть большими по размеру и добавлять ненужный код. Используйте библиотеки, которые предоставляют только нужные функции для вашего проекта.
- Использование легковесных альтернатив: Вместо тяжеловесных библиотек можно использовать их легковесные альтернативы, если они покрывают ваши потребности. Например, можно использовать библиотеку Flask вместо Django, если вам необходимы только базовые функциональности веб-приложения.
Следование этим рекомендациям поможет вам значительно сократить размер файлов и улучшить производительность ваших Python-приложений.
Основы Python
Синтаксис — набор правил:
- Конец строки — конец инструкции. Ставить точку с запятой не надо.
- Инструкции группируют в блоки по длине отступов. Один блок — одинаковый размер отступа в каждой строке.
- Вложенные инструкции пишут по единому шаблону. Основная инструкция → двоеточие → вложенный блок кода с отступом.
Циклы. Нужны для повторения частей кода. Ряды циклов называют итерациями. Python поддерживает два цикла:
- For — для перебора элементов последовательности. Например, чтобы повторить фрагмент кода n раз.
- While — для перебора блока кода. Например, когда непонятно, сколько раз нужно повторить итерацию.
Функции. В программировании функция — обособленный участок кода, который принимает данные ввода — аргументы. Функция принимает произвольное количество аргументов или не принимает их вовсе.
Вызвать функцию — передать ей вводные для выполнения и вывода результата. Чтобы определить функцию, вводят команду «def». Например:
def add(x, y): return x + y
Ключевое слово «def» сообщает Python, что вы определяете функцию. После укажите имя, поставьте круглые скобки и напишите в них один или несколько параметров. После скобок ставьте двоеточие, а новую строку начинайте с отступа в четыре пробела. В примере выше функция add принимает два параметра (x и y) и возвращает их сумму.
Классы и методы. Python поддерживает объектно-ориентированную парадигму программирования. В основе — классы и объекты. Первые можно сравнить с чертежом, а вторые — с готовой моделью. Объект для Python — строка, список, модуль.
Класс объединяет набор функций и переменных. Функции — это методы класса, которые определяют его поведение. Переменные класса называют атрибутами. В них хранится состояние класса.
Списки в Python — упорядоченные изменяемые наборы объектов. При этом объекты могут быть разными — от целых чисел до строк. Списки могут также хранить в себе списки.
Массивы. Это структуры данных для хранения значений одного типа. Массивы очень похожи на списки, но между ними есть одно отличие. Списки содержат значения разных типов данных, но массивы — никогда.
Чтобы использовать массив, импортируйте array модуль:
from array import *
После импорта объявите сам массив:
arrayIdentifierName = array(typecode, )
Модули. Это отдельные файлы с кодом. Импортировать модули и получить доступ к классам, функциям и объектам может любая программа. Для создания модуля необходим файл с расширением:
*.py
Название файла — название модуля. Для подключения модуля из стандартной библиотеки нужна команда:
import
После указывают название модуля.
Ошибки и исключения. В Python есть два типа ошибок: синтаксические и исключения. Первые влияют на работу программы и не позволяют запустить код. Вот что произойдет, если определить строку кавычками только с одной стороны:
my_string = "Hello, world.
Сообщение Python:
Traceback (most recent call last): File error.py, line 1 my_string = "Hello, world. SyntaxError: EOL while scanning string literal
К исключениям относят все ошибки, которые нельзя записать в синтаксические. Например, деление на ноль:
z = 100 / 0
Запускаем этот код, и программа выдает ошибку:
Traceback (most recent call last): File "", line 1, in ZeroDivisionError: division by zero
Чтобы обработать исключения, используют ключевые слова «try» и «except».
Виртуальные среды. Цель виртуальной среды — создать изолированное окружение проектов Python. Подобно песочнице, каждое приложение играет со своими фреймворками и не трогает другие. Виртуальные среды облегчают программисту жизнь. Особенно, если он пишет код на сторонних библиотеках. Количество окружений не ограничено.
У разработчиков Python есть своя философия. С нотами дзена и абсурдного британского юмора. Чтобы узнать ее принципы, наберите в строке ввода команду:
import this
Занимаемое пространство Python на диске
Размер установочного пакета Python может варьироваться в зависимости от версии и операционной системы. Например, для Python 3.9.5 на Windows, размер установочного файла составляет около 28 МБ. Однако после установки и развертывания Python занимает больше места на диске.
Библиотеки, модули и другие зависимости Python занимают еще больше пространства. Включенные в стандартную библиотеку модули и пакеты могут занимать несколько сотен мегабайт. Кроме того, если вы устанавливаете сторонние библиотеки через менеджер пакетов, то их размер будет добавлен к занимаемому месту.
Помимо самого языка Python, у вас может быть установлено несколько версий Python на вашем компьютере. Проекты, разрабатываемые на разных версиях Python, могут занимать свое пространство и иметь свои зависимости. Это также стоит учитывать при оценке занимаемого места.
Кроме того, Python часто используется вместе с другими инструментами и средами разработки. IDE, текстовые редакторы, системы управления версиями и другие программы могут занимать дополнительное пространство. Все это следует учитывать при планировании места на диске.
В целом, размер Python и его занимаемое пространство на диске зависит от множества факторов: версии языка, установленных библиотек и зависимостей, а также других инструментов и программ, использующих Python
Важно оценить доступное место на диске перед установкой Python и аккуратно управлять установленными пакетами и зависимостями, чтобы избежать излишнего расходования места