Язык python. Как изучать машинное обучение? Как запустить написанную программу

Python - мощный и простой для изучения язык программирования. В нём предоставлены удобные высокоуровневые структуры данных и простой, но эффективный подход к объектно-ориентированному программированию. Python интерпретируемый язык. Для запуска написанных программ требуется наличие интерпретатора CPython . Интерпретатор python и большая стандартная библиотека находятся в свободном доступе в виде исходных и бинарных файлов для всех основных платформ на официальном сайте Python http://www.python.org и могут распространяться без ограничений. Кроме этого на сайте содержатся дистрибутивы и ссылки на многочисленные модули третьих сторон и подробная документация.
Язык обладает чётким и последовательным синтаксисом, продуманной модульностью и масштабируемостью, благодаря чему исходный код написанных на Python программ легко читаем. Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python». Её текст выдаётся интерпретатором по команде import this:

>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren"t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you"re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it"s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let"s do more of those!

В переводе это звучит так:

  • Красивое лучше, чем уродливое.
  • Явное лучше, чем неявное.
  • Простое лучше, чем сложное.
  • Сложное лучше, чем запутанное.
  • Плоское лучше, чем вложенное.
  • Разреженное лучше, чем плотное.
  • Читаемость имеет значение.
  • Особые случаи не настолько особые, чтобы нарушать правила.
  • При этом практичность важнее безупречности.
  • Ошибки никогда не должны замалчиваться.
  • Если не замалчиваются явно.
  • Встретив двусмысленность, отбрось искушение угадать.
  • Должен существовать один - и, желательно, только один - очевидный способ сделать это.
  • Хотя он поначалу может быть и не очевиден, если вы не голландец.
  • Сейчас лучше, чем никогда.
  • Хотя никогда зачастую лучше, чем прямо сейчас.
  • Если реализацию сложно объяснить - идея плоха.
  • Если реализацию легко объяснить - идея, возможно, хороша.
  • Пространства имён - отличная штука! Будем делать их побольше!

Python - активно развивающийся язык программирования, новые версии выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.

История создания языка

Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института CWI . Распределённой ОС Amoeba требовался расширяемый скриптовый язык для которой Гвидо ван Россум и создал Python. Новый язык позаимствовал некоторые наработки для языка ABC, который был ориентирован на обучение программированию. В феврале 1991 года Гвидо опубликовал исходный текст в ньюсгруппе alt.sources. Название языка произошло не от вида пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 1970-х «Летающий цирк Монти Пайтона». Тем не менее эмблему языка изображают змеиные головы. После длительного тестирования, вышла первая версия Python 3.0. На сегодня поддерживаются обе ветви развития (Python 3.x и 2.x).

Python создавался под влиянием множества языков программирования: Modula-3, С, C++, Smalltalk, Lisp, Fortran, Java, Miranda, Icon. Несмотря на то, что Python обладает достаточно самобытным синтаксисом, одним из принципов дизайна этого языка является принцип наименьшего удивления.

Стандартная библиотека

Богатая стандартная библиотека является одной из привлекательных сторон Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами Интернета. Существуют модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими протоколами, архивами. Помимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам на разных платформах.
Для Python принята спецификация программного интерфейса к базам данных DB-API 2 и разработаны соответствующие этой спецификации пакеты для доступа к различным СУБД: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server и SQLite.
Библиотека NumPy для работы с многомерными массивами позволяет достичь производительности научных расчётов, сравнимой со специализированными пакетами. SciPy использует NumPy и предоставляет доступ к обширному спектру математических алгоритмов. Numarray специально разработан для операций с большими объёмами научных данных.
Python предоставляет простой и удобный программный интерфейс Си API для написания собственных модулей на языках Си и C++. Такой инструмент как SWIG позволяет почти автоматически получать привязки для использования C/C++ библиотек в коде на Python. Инструмент стандартной библиотеки ctypes позволяет программам Python напрямую обращаться к динамическим библиотекам, написанным на Си. Существуют модули, позволяющие встраивать код на С/C++ прямо в исходные файлы Python, создавая расширения «на лету».
Python и подавляющее большинство библиотек к нему бесплатны и поставляются в исходных кодах. Более того, в отличие от многих открытых систем, лицензия никак не ограничивает использование Python в коммерческих разработках и не налагает никаких обязательств кроме указания авторских прав.

Сферы применения

Python - стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов, также он активно используется для создания прототипов будущих программ. Python используется во многих крупных компаниях.
Python с пакетами NumPy, SciPy и MatPlotLib активно используется как универсальная среда для научных расчётов в качестве замены распространенным специализированным коммерческим пакетам Matlab, IDL и др.
В профессиональных программах трехмерной графики, таких как Houdini и Nuke, Python используется для расширения стандартных возможностей программ.

Источники

Презентации

Домашнее задание

Подготовить сообщения:

  • Python как инструмент ученых
  • Python и Ruby (сравнение)
  • Python и WEB
  • Создание оконных приложений с помощью Python и графических библиотек (wxPython, PyQt, PyGTK и др.)

Стоит учить язык программирования Python? Ведь нередко можно услышать, что этот язык умирает. Этот вопрос обсудили пользователи сайта Quora и поделились своим мнением.

Билл Карвн, SQL-разработчик, консультант, тренер и автор

Язык ассемблера дает тебе прекрасную возможность написать компактный, эффективный и оптимизированный для проекта код. В написанном на этом языке коде, занимающем всего несколько килобайт, можно творить удивительные вещи. Но тот уровень эффективности, который можно получить, используя язык ассемблера, не оправдывает дополнительную работу, лишнее время и те навыки, которых он требует.

Это правда, что языки как набирают популярность, так и теряют ее. Продуктивность – вот главная задача в программировании, поэтому время от времени создаются новые языки, которые увеличивают производительность, по крайней мере, для некоторых видов работ.

Большая часть программистов сегодня использует языки более высокого уровня – им необходимо быть боле производительными. Языки высшего уровня могут компилироваться в машинный код (C или C++), а могут быть скомпилированы в байткод с независимой архитектурой и запущены в виртуальной машине (Java) ил же быть обработаны (JavaScript, PHP, Ruby, Python, Perl и др.).

Ошибочное мнение, что необходимо учить язык ассемблера, потому что «он лучше Python». Это глупая точка зрения, построенная на устаревших данных.

Билл Поучер, исполнительный директор ICPC, программное обеспечение в сферах энергетики, синтетической генетики и др.

Изучи Python. Обеспечь себя опытом в программировании. В этом языке есть своя элегантность.

Изучи C как язык для Unix-машин. Понимание UNIX относительно несложно.

Изучи MIX, чтобы понимать Knuth.

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

Изучи C++, чтобы программировать в любом стиле, каком только захочешь. Его сила в том, что это основной язык программирования. Его слабость в том, что для программирования на нем необходимо понимать его стиль.

Изучи LISP, чтобы укрепить свое понимание рекурсии.

Разве я сказал, что не стоит учить хотя бы что-то? Нет. Потому что единственная вещь, которую следует сделать, это приучить себя к постоянному изучению чего-либо, особенно к изучению того, как можно решать возникающие проблемы.

Шива Шинде, на языке Python легко кодить, но его тяжело читать

Язык программирования Python не умирает, это один из наиболее быстро развивающихся языков.

  1. Его легко изучить
  • На данный момент 8 из 10 лучших американских программ для вычислительной техники используют этот язык (Philip Guo, CACM)
  • Программы на языке Python, как правило, имеют минимум шаблонов, которые обычно встречаются в других языках программирования. Поэтому вы можете чаще использовать нешаблонные решения задач.
  • Если у вас есть опыт программирования, пусть и не этом языке, то вы достаточно быстро овладеете Python.

2. Полный функционал

  • Это не только язык для статистических данных. У Python есть все возможности для сбора и очистки данных, для работы с базами данных и высокопроизводительными вычислениями, а также многим другим.
  • Этот общепринятый язык программирования с огромным количеством встроенных библиотек . Он хорош для управления данными и базами данных, а также для работы с сетевым программированием. Это продуманный язык с огромным количеством доступных ресурсов.

3. Серьезные библиотеки научных данных

  • Python обладает значительными научными библиотеками с огромным количеством данных для использования.
  • Основой этих научных библиотек является SciPy Ecosystem, которая даже проводит свои собственные конференции.
  • Pandas и Matplotlib - это составляющие SciPy. Они обеспечивают превосходные данные по самым разным темам, например, машинное обучение, интеллектуальный анализ текста и сетевой анализ.

Эрнан Сулаж, прагматичный программист

Этот язык достаточно популярен, его значимость растет в академических кругах. Правдив также тот факт, что полезность языка программирования зависит от того, что ты на нем хочешь делать.

Мне совершенно не нравится PHP, но я не настолько глуп, чтобы отрицать его универсальность и мощность, а также то, что этим языком достаточно просто овладеть.
Что касается изучения ассемблера, то этот язык напрямую зависит от того, с каким процессором вы работаете.

Если вы знаете, как работать с одним, то вы точно в течение некоторого времени сможете использовать его в семействе процессоров. Но со временем и они претерпевают некоторые изменения. В этом смысле это наименее долговечная семья языков.

Магнус Лычка, разработчик программного обеспечения и консультант в Гетеборге

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

Многие стартапы становились успешными с языком Python, после чего им приходилось переписывать некоторые программы в Java, C++ или C. А если бы эти стартапы начинали работать с языком ассемблера, то, скорее всего, у них бы финансирование закончилось задолго до того, как их очень быстрый, но сложный для чтения код был бы закончен.

Но, работая с языком ассемблера, вам придется столкнуться не только с различными архитектурами процессора, но и с техническими деталями, которые отличаются в разных операционных системах.

Пошаговая инструкция для всех, кто хочет изучить программирование на Python (или программирование вообще), но не знает, куда сделать первый шаг.

Что делать?

Мы просмотрели множество обучающих материалов и просто хороших статей и составили список того, что необходимо изучить, чтобы освоить этот язык программирования и развиваться в нем.

1. Первым делом изучите основы. Узнайте, что такое переменные, управляющие структуры, структуры данных. Эти знания необходимы без привязки к конкретному языку.

2. Займитесь изучением литературы. Начните с классики – Dive into Python . Эта книга вообще может стать настольной. Еще можно почитать Майкла Доусона «Программируем на Python » и Алексея Васильева «Python на примерах. Практический курс по программированию» . Доусон – опытный программист и преподаватель, а в книге учит программировать, создавая простые игры. В книге Васильева, напротив, больше внимания уделяется основам и теории.

4. Пройдите курс «Введение в компьютерные технологии и программирование на языке Python» от MIT.

5. Узнайте, какие библиотеки и и для каких целей используют другие питонисты. Найдите что-то интересное для себя.

6. Если вас интересуют веб-технологии, обратите внимание на фреймворки Flask и Django. Узнайте, для каких целей какой из них лучше подходит, начните изучать тот, что подходит вам.

7. Узнайте, как получать и анализировать массивы данных с отдельных сайтов, со всего Интернета и вообще откуда угодно – только старайтесь держаться в рамках закона.

8. Ищите информацию о методах машинного обучения.

9. Оптимизируйте работу с инструментами, автоматизируйте рутину и все, что еще не автоматизировано.

Куда сходить?

Несколько полезных ссылок на ресурсы, которые помогут чуть меньше гуглить и определиться, в каком направлении работать.

Полезные ресурсы

Python Tutor

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

Bucky Roberts на YouTube

Если вы не знакомы с программированием, эти туториалы очень вам помогут. Они просты для понимания и охватывают все, что может пригодиться сначала, начиная с установки языка.

Derek Banas про Python на YouTube

Дерек – программист-самоучка, и у него свой взгляд на подход к изучению языков программирования. Он делает небольшие видеообзоры на различные языки длиной в 40-60 минут, в которых рассказывает все, что нужно, чтобы в общих чертах понять назначение языка.

Corey Schafer на YouTube

У Кори хорошие видео на тему форматирования строк, генераторов, программистских терминов (комбинации и перестановки, DRY, замыкания) и многого другого, что поможет понять основные концепции.

Django Getting Started

Официальная документация по веб-фреймворку Django. Покрывает все, что нужно узнать на первых порах, от установки до первого приложения.

Введение во Flask

Видеокурс на YouTube для желающих ознакомиться с Flask, понять некоторые его тонкости и узнать, зачем он вообще нужен.

Полезные ссылки

Новичку

Python 3 для начинающих
«Укус Питона» (англ. «A Byte of Python»)

Python - это популярный и мощный язык сценариев, с помощью которого вы можете сделать все что захотите. Например, вы можете сканировать веб-сайты и собирать с них данные, создавать сетевые и инструменты, выполнять вычисления, программировать для Raspberry Pi, разрабатывать графические программы и даже видеоигры. На Python можно \\ писать системные программы, независимые от платформы.

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

Что такое Python?

Я не буду вдаваться в историю создания и разработки языка, это вы без труда узнать из видео, которое будет прикреплено ниже. Важно отметить, что Python - скриптовый язык. Это означает, ваш код проверяется на ошибки и сразу же выполняется без какой-либо дополнительной компиляции или переработки. Такой подход еще называется интерпретируемым.

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

Работа в интерпретаторе

Запустить интерпретатор Python очень просто в любой операционной системе. Например, в Linux достаточно набрать команду python в терминале:

В открывшемся приглашении ввода интерпретатора мы видим версию Python, которая сейчас используется. В наше время очень сильно распространены две версии Python 2 и Python 3. Они обе популярны, потому что на первой было разработано множество программ и библиотек, а вторая - имеет больше возможностей. Поэтому дистрибутивы включают обе версии. По умолчанию запускается вторая версия. Но если вам нужна версия 3, то нужно выполнить:

Именно третья версия будет рассматриваться в этой статье. А теперь рассмотрим основные возможности этого языка.

Операции со строками

Строки в Python неизменяемые, вы не можете изменить один из символов строки. Любое изменение содержимого требует создания новой копии. Откройте интерпретатор и выполняйте перечисленные ниже примеры, для того чтобы лучше усвоить все написанное:

1. Объединение строк

str = "welcome " + "to python"
print (str)

2. Умножение строк

str = "Losst" * 2
print (str)

3. Объединение с преобразованием

Вы можете объединить строку с числом или логическим значением. Но для этого нужно использовать преобразование. Для этого существует функция str():

str = "Это тестовое число " + str(15)
print (str)

4. Поиск подстроки

Вы можете найти символ или подстроку с помощью метода find:

str = "Добро пожаловать на сайт"
print(str.find("сайт"))

Этот метод выводит позицию первого вхождения подстроки сайт если она будет найдена, если ничего не найдено, то возвращается значение -1. Функция начинает поиск с первого символа, но вы можете начать с энного, например, 26:

str = "Добро пожаловать на сайт сайт"
print(str.find("losst",26))

В этом варианте функция вернет -1, поскольку строка не была найдена.

5. Получение подстроки

Мы получили позицию подстроки, которую ищем, а теперь как получить саму подстроку и то, что после нее? Для этого используйте такой синтаксис [начало:конец] ,просто укажите два числа или только первое:

str = "Один два три"
print(str[:2])
print(str)
print(str)
print(str[-1])

Первая строка выведет подстроку от первого до второго символа, вторая - от второго и до конца. Обратите внимание, что отсчет начинается с нуля. Чтобы выполнять отсчет в обратном порядке, используйте отрицательное число.

6. Замена подстроки

Вы можете заменить часть строки с помощью метода replace:

str = "Этот сайт про Linux"
str2 = str.replace("Linux", "Windows")
print(str2)

Если вхождений много, то можно заменить только первое:

str = "Это сайт про Linux и я подписан на этот сайт"
str2 = str.replace("сайт", "страница",1)
print(str2)

7. Очистка строк

Вы можете удалить лишние пробелы с помощью функции strip:

str = " Это веб-сайт про Linux "
print(str.strip())

Также можно удалить лишние пробелы только справа rstrip или только слева - lstrip.

8. Изменение регистра

Для изменения регистра символов существуют специальные функции:

str="Добро пожаловать на Losst"
print(str.upper())
print(str.lower())

9. Конвертирование строк

Есть несколько функций для конвертирования строки в различные числовые типы, это int(), float() , long() и другие. Функция int() преобразует в целое, а float() в число с плавающей точкой:

str="10"
str2="20"
print(str+str2)
print(int(str)+int(str2))

10. Длина строк

Вы можете использовать функции min(), max(), len() для расчета количества символов в строке:

str="Добро пожаловать на сайт Losst"
print(min(str))
print(max(str))
print(len(str))

Первая показывает минимальный размер символа, вторая - максимальный, а третья - общую длину строки.

11. Перебор строки

Вы можете получить доступ к каждому символу строки отдельно с помощью цикла for:

str="Добро пожаловать на сайт"
for i in range(len(str)):
print(str[i])

Для ограничения цикла мы использовали функцию len(). Обратите внимание на отступ. Программирование на python основывается на этом, здесь нет скобок для организации блоков, только отступы.

Операции с числами

Числа в Python достаточно просто объявить или применять в методах. Можно создавать целые числа или числа с плавающей точкой:

num1 = 15
num2 = 3,14

1. Округление чисел

Вы можете округлить число с помощью функции round, просто укажите сколько знаков нужно оставить:

a=15.5652645
print(round(a,2))

2. Генерация случайных чисел

Получить случайные числа можно с помощью модуля random:

import random
print(random.random())

По умолчанию число генерируется из диапазона от 0,0 до 1,0. Но вы можете задать свой диапазон:

import random
numbers=
print(random.choice(numbers))

Операции с датой и временем

Язык программирования Python имеет модуль DateTime, который позволяет выполнять различные операции с датой и временем:

import datetime
cur_date = datetime.datetime.now()
print(cur_date)
print(cur_date.year)
print(cur_date.day)
print(cur_date.weekday())
print(cur_date.month)
print(cur_date.time())

В примере показано как извлечь нужное значение из объекта. Вы можете получить разницу между двумя объектами:

import datetime
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
timediff = time2 - time1
print(timediff.microseconds)

Вы можете сами создавать объекты даты с произвольным значением:

time1 = datetime.datetime.now()
time2 = datetime.timedelta(days=3)
time3=time1+time2
print(time3.date())

1. Форматирование даты и времени

Метод strftime позволяет изменить формат даты и времени зависимо от выбранного стандарта или указанного формата. Вот основные символы форматирования:

  • %a - день недели, сокращенное название;
  • %A - день недели, полное название;
  • %w - номер дня недели, от 0 до 6;
  • %d - день месяца;
  • %b - сокращенное название месяца;
  • %B - полное название месяца;
  • %m - номер месяца;
  • %Y - номер года;
  • %H - час дня в 24 часовом формате;
  • %l - час дня в 12 часовом формате;
  • %p - AM или PM;
  • %M - минута;
  • %S - секунда.

import datetime
date1 = datetime.datetime.now()
print(date1.strftime("%d. %B %Y %I:%M%p"))

2. Создать дату из строки

Вы можете использовать функцию strptime() для создания объекта даты из строки:

import datetime
date1=datetime.datetime.strptime("2016-11-21", "%Y-%m-%d")
date2=datetime.datetime(year=2015, month=11, day=21)
print(date1);
print(date2);

Операции с файловой системой

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

1. Копирование файлов

Для копирования файлов нужно использовать функции из модуля subutil:

import shutil
new_path = shutil.copy("file1.txt", "file2.txt")

new_path = shutil.copy("file1.txt", "file2.txt", follow_symlinks=False)

2. Перемещение файлов

Перемещение файлов выполняется с помощью функции move:

shutil.move("file1.txt", "file3.txt")

Функция rename из модуля os позволяет переименовывать файлы:

import os
os.rename("file1.txt", "file3.txt")

3. Чтение и запись текстовых файлов

Вы можете использовать встроенные функции для открытия файлов, чтения или записи данных в них:

fd = open("file1.txt")
content = fd.read()
print(content)

Сначала нужно открыть файл для работы с помощью функции open. Для чтения данных из файла используется функция read, прочитанный текст будет сохранен в переменную. Вы можете указать количество байт, которые нужно прочитать:

fd = open("file1.txt")
content = fd.read(20)
print(content)

Если файл слишком большой, вы можете разбить его на строки и уже так выполнять обработку:

content = fd.readlines()
print(content)

Чтобы записать данные в файл, его сначала нужно открыть для записи. Есть два режима работы - перезапись и добавление в конец файла. Режим записи:

fd = open("file1.txt","w")

И добавление в конец файла:

fd = open("file1.txt","a")
content = fd.write("Новое содержимое")

4. Создание директорий

Чтобы создать директорию используйте функцию mkdir из модуля os:

import os
os.mkdir("./новая папка")

5. Получение времени создания

Вы можете использовать функции getmtime(), getatime() и getctime() для получения времени последнего изменения, последнего доступа и создания. Результат будет выведен в формате Unix, поэтому его нужно конвертировать в читаемый вид:

import os
import datetime
tim=os.path.getctime("./file1.txt")
print(datetime.datetime.fromtimestamp(tim))

6. Список файлов

С помощью функции listdir() вы можете получить список файлов в папке:

import os
files= os.listdir(".")
print(files)

Для решения той же задачи можно использовать модуль glob:

import glob
files=glob.glob("*")
print(files)

7. Сериализация объектов Python

import pickle
fd = open("myfile.pk ", "wb")
pickle.dump(mydata,fd)

Затем для восстановления объекта используйте:

import pickle
fd = open("myfile.pk ", "rb")
mydata = pickle.load(fd)

8. Сжатие файлов

Стандартная библиотека Python позволяет работать с различными форматами архивов, например, zip, tar, gzip, bzip2. Чтобы посмотреть содержимое файла используйте:

import zipfile
my_zip = zipfile.ZipFile("my_file.zip", mode="r")
print(file.namelist())

А для создания zip архива:

import zipfile
file=zipfile.ZipFile("files.zip","w")
file.write("file1.txt")
file.close()

Также вы можете распаковать архив:

import zipfile
file=zipfile.ZipFile("files.zip","r")
file.extractall()
file.close()

Вы можете добавить файлы в архив так:

import zipfile
file=zipfile.ZipFile("files.zip","a")
file.write("file2.txt")
file.close()

9. Разбор CSV и Exel файлов

С помощью модуля pandas можно смотреть и разбирать содержимое CSV и Exel таблиц. Сначала нужно установить модуль с помощью pip:

sudo pip install pandas

Затем для разбора наберите:

import pandas
data=pandas.read_csv("file.csv)

По умолчанию pandas использует первую колонку для заголовков каждой из строк. Вы можете задать колонку для индекса с помощью параметра index_col или указать False, если он не нужен. Чтобы записать изменения в файл используйте функцию to_csv:

data.to_csv("file.csv)

Таким же образом можно разобрать файл Exel:

data = pd.read_excel("file.xls", sheetname="Sheet1")

Если нужно открыть все таблицы, используйте:

data = pd.ExcelFile("file.xls")

Затем можно записать все данные обратно:

data.to_excel("file.xls", sheet="Sheet1")

Работа с сетью в Python

Программирование на Python 3 часто включает работу с сетью. Стандартная библиотека Python включает в себя возможности работы с сокетами для доступа к сети на низком уровне. Это нужно для поддержки множества сетевых протоколов.

import socket
host = "192.168.1.5"
port = 4040
my_sock = socket.create_connection ((host, port))

Этот код подключается к порту 4040 на машине 192.168.1.5. Когда сокет открыт, вы можете отправлять и получать данные:

my_sock.sendall(b"Hello World")

Нам необходимо писать символ b, перед строкой, потому что надо передавать данные в двоичном режиме. Если сообщение слишком большое, вы можете выполнить итерацию:

msg = b"Longer Message Goes Here"
mesglen = len(msg)
total = 0
while total < msglen:
sent = my_sock.send(msg)
total = total + sent

Для получения данных вам тоже нужно открыть сокет, только используется метод my_sock_recv:

data_in = my_sock.recv(2000)

Здесь мы указываем сколько данных нужно получить - 20000, данные не будут переданы в переменную, пока не будет получено 20000 байт данных. Если сообщение больше, то для его получения нужно создать цикл:

buffer = bytearray(b" " * 2000)
my_sock.recv_into(buffer)

Если буфер пуст, туда будет записано полученное сообщение.

Работа с почтой

Стандартная библиотека Python позволяет получать и отправлять электронные сообщения.

1. Получение почты от POP3 сервера

Для получения сообщений мы используем POP сервер:

import getpass,poplib
pop_serv = poplib.POP3("192.168.1.5")
pop_serv.user("myuser")
pop_serv.pass_(getpass.getpass())

Модуль getpass позволяет получить пароль пользователя безопасным образом, так что он не будет отображаться на экране. Если POP сервер использует защищенное соединение, вам нужно использовать класс POP3_SSL. Если подключение прошло успешно, вы можете взаимодействовать с сервером:

msg_list = pop_serv.list() # to list the messages
msg_count = pop_serv.msg_count()

Для завершения работы используйте:

2. Получение почты от IMAP сервера

Для подключения и работы с сервером IMAP используется модуль imaplib:

import imaplib, getpass
my_imap = imaplib.IMAP4("imap.server.com")
my_imap.login("myuser", getpass.getpass())

Если ваш IMAP сервер использует защищенное соединение, нужно использовать класс IMAP4_SSL. Для получения списка сообщений используйте:

data = my_imap.search(None, "ALL")

Затем вы можете выполнить цикл по выбранному списку и прочитать каждое сообщение:

msg = my_imap.fetch(email_id, "(RFC822)")

Но, не забудьте закрыть соединение:

my_imap.close()
my_imap.logout()

3. Отправка почты

Для отправки почты используется протокол SMTP и модуль smtplib:

import smtplib, getpass
my_smtp = smtplib.SMTP(smtp.server.com")
my_smtp.login("myuser", getpass.getpass())

Как и раньше, для защищенного соединения используйте SMTP_SSL. Когда соединение будет установлено, можно отправить сообщение:

from_addr = "[email protected]"
to_addr = "[email protected]"
msg = "From: [email protected]\r\nTo: [email protected]\r\n\r\nHello, this is a test message"
my_smtp.sendmail(from_addr, to_addr, msg)

Работа с веб-страницами

Программирование на Python часто используется для написания различных скриптов для работы с веб.

1. Веб краулинг

Модуль urllib позволяет выполнять запросы к веб-страницам различными способами. Для отправки обычного запроса используется класс request. Например, выполним обычный запрос страницы:

import urllib.request
my_web = urllib.request.urlopen("https://www.google.com")
print(my_web.read())

2. Использование метода POST

Если вам нужно отправить веб-форму, необходимо использовать не GET запрос, а POST:

import urllib.request
mydata = b"Your Data Goes Here"
my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
my_form = urllib.request.urlopen(my_req)
print(my_form.status)

3. Создание веб-сервера

С помощью класса Socket вы можете принимать входящие подключения, а значит можете создать веб-сервер с минимальными возможностями:

import socket
host = ""
port = 4242
my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_server.bind((host, port))
my_server.listen(1)

Когда сервер создан. вы можете начать принимать соединения:

addr = my_server.accept()
print("Connected from host ", addr)
data = conn.recv(1024)

И не забудьте закрыть соединение:

Многопоточность

Как и большинство современных языков, Python позволяет запускать несколько параллельных потоков, которые могут быть полезными, если нужно выполнить сложные вычисления. В стандартной библиотеке есть модуль threading, который содержит класс Therad:

import threading
def print_message():
print("The message got printed from a different thread")
my_thread = threading.Thread(target=print_message)
my_thread.start()

Если функция работает слишком долго, вы можете проверить все ли в порядке, с помощью функции is_alive(). Иногда вашим потокам нужно получать доступ к глобальным ресурсам. Для этого используются блокировки:

import threading
num = 1
my_lock = threading.Lock()
def my_func():
global num, my_lock
my_lock.acquire()
sum = num + 1
print(sum)
my_lock.release()
my_thread = threading.Thread(target=my_func)
my_thread.start()

Выводы

В этой статье мы рассмотрели основы программирования python. Теперь вы знаете большинство часто используемых функций и можете применять их в своих небольших программах. Вам понравиться программирование на Python 3, это очень легко! Если у вас остались вопросы, спрашивайте в комментариях!

На завершение статьи отличная лекция о Python:

Еще пару десятков лет назад программисты казались какими-то шаманами, знающими то, что недоступно другим. Порой люди изучали программирование "на коленке", строча код на бумажке, потому что "концентрация компьютерных устройств на душу населения" была крайне низка. Теперь же с трудом можно найти человека, у которого дома нет стационарного компьютера или ноутбука. Технологии обучения тоже не стоят на месте.

Немного истории

Язык программирования Python начал разрабатываться Гвидо ван Россумом в конце восьмидесятых. Гвидо в то время был сотрудником голландского института CWI. Он писал этот язык на досуге, вложив туда некоторые идеи по языку ABC, в работе над которым он участвовал.

Назван язык был вовсе не в честь пресмыкающегося. На самом деле идеей для названия послужило популярное британское комедийное шоу семидесятых, называвшееся "Летающий цирк Монти Пайтона", хотя Python все равно гораздо чаще сравнивают со змеей, о чем говорит даже эмблема на официальном сайте (на ней изображены две змеиные головы).

Не только дизайнерская интуиция ван Россума считается причиной того, почему так популярен язык программирования Python. Обучение с нуля становится приятным и легким занятием, если учесть наличие дружного сообщества пользователей.

Не так давно, в 2008 году, вышла первая, до этого долго тестировавшаяся версия Python 3000 (3.0), где было устранено множество недостатков архитектуры. При этом разработчики постарались сохранить совместимость с предыдущими версиями языка. Несмотря на наличие более свежей версии, обе ветки (2.х и 3.х) поддерживаются.

Лаконичный язык программирования

Python имеет ряд преимуществ перед другими языками. Он понятен практически интуитивно, имеет "прозрачный" синтаксис. Это значит, что программный код на этом языке читается гораздо легче, что сокращает время не только на его написание, но и на различные доработки и проверки.

Конечно, программист "старой школы" скажет, что обязательно нужно знать несколько языков, а можно и вообще начать с изучения машинного кода. Но, пройдя курс программирования на языке Python, человек получит не только конкретные знания, но и возможность реализовать свою творческую натуру, создавая приложения и полезные для себя программы. Возможно, скоро программирование будет необходимо так же, как знание иностранного языка.

Неуверенность в себе

Стоит отбросить заблуждение о том, что программирование - это сложно. Нет, программирование гораздо интереснее, чем кажется; помешать могут другие занятия и так называемая "нехватка времени" или лень.

Базовая литература поможет быстро изучить программирование на языке Python. Учебный курс следует начать с чтения двух книг, из которых можно почерпнуть основы. Первая из них - это "Программирование на Python" Марка Лутца, а вторая - "Программирование на Python 3" Марка Саммерфилда. Книга Лутца подробно, порой даже слишком, описывает все базовые принципы, на которых строится язык. Некоторые советуют читать Марка Лутца не для освоения, а для углубления базовых знаний. Книга Саммерфилда объясняет все более лаконично, автор не пугает читателя никакими сложностями. Есть и другая литература, однако эти учебники наиболее полезны и информативны.

Вводный курс

Давайте вспомним начальную школу. Как правило, даже в первый класс ребенок приходит с какими-то минимальными знаниями: с кем-то занимались родители, кто-то ходил в "нулевку". Так же проходит и обучение языку программирования Python. Он действительно удобен и "прозрачен", но без минимальных знаний о базовых принципах действия программ обучение будет идти тяжело. Это как изучать ноты, не слыша музыки. Поэтому тем, кто вообще никогда не сталкивался с программированием, стоит ознакомиться с "вводным минимумом".

Полезным подспорьем будут лекции CS50. Это курс Гарвардского университета, посвященный программированию на Java Script, однако в первых лекциях доступно и понятно объясняется взаимодействие компьютера и программ в целом. Русскоязычному пользователю доступны видеозаписи этого курса с переводом, дополнительными материалами, текстовыми вариантами лекций и практическими заданиями. Видео можно найти практически где угодно, например, на YouTube, а вот все материалы целиком - на сайте Java Script.

В интернете

Язык программирования Python набирает популярность, поэтому уже давно существует несколько порталов, на которых множество материалов для самообучения. Например, «Python 3 для начинающих». На этом сайте много материалов для новичков, его можно использовать как шпаргалку. Также большой объем информации по данной теме с бесплатным доступом на сайте Codecademy.

Немаловажным является общение на форумах. Обучение в одиночку всегда дается тяжелее, поэтому не пренебрегайте различными сообществами.

Платные курсы

Всегда можно воспользоваться и платными курсами, но стоит это порой немалых денег, а результат может быть неудовлетворительным. Поэтому, конечно, желательно выбирать курсы, которые предлагают бесплатное ознакомительное задание. Например, интенсив по теме "Основы программирования на языке Python" есть на GeekBrains. Занятие бесплатное, проводится каждые десять дней. Чтобы записаться, необходимо авторизоваться на сайте.

Совет: какие бы курсы вы ни выбрали, сначала ознакомьтесь с азами языка, чтобы не тратить время на то, что вы легко можете усвоить сами. Достаточно будет прочитать указанные выше книги.

Конечно, когда теория освоена, хочется попрактиковаться. Здесь нужно упомянуть лекции Ника Парланте. Они на английском, хотя в целом очень много хорошей обучающей литературы именно на английском, и этому не стоит удивляться. В лекциях Ник не только преподает язык программирования Python, но и дает отличные практические задачи.

Использование

Язык программирования Python был использован для создания множества приложений, которыми многие люди пользуются ежедневно. Например, это шестая версия торрент-клиента BitTorrent. Также «Питон» («Пайтон») используется в растровом графическом редакторе Gimp. С помощью него создаются дополнительные модули, фильтры, к примеру. На этом языке написана значительная часть игры Civilization IV и Batterfield 2.

«Питон» используют такие компании, как «Гугл», «Фейсбук», «Инстаграм», «Дропбокс», «Пинтерест». Он также работает в ядре приложения «Яндекс-диск». Около 10% сотрудников компании пишут именно на «Питоне», а многие программисты называют его своим любимым языком.

Как начать работу

Никакой код не может работать "в воздухе", этому правилу подчиняется и язык программирования Python. Обучение с нуля хотя и начинается с теории, но на деле, можно сказать, оно начинается с установки на персональный компьютер рабочей среды. Как это сделать? Все просто: нужно перейти по ссылке официального сайта Python, скачать и запустить установщик, после чего внимательно выполнять предложенные им действия.

Обратите внимание, что необходимо скачивать файл, подходящий под установленную на компьютере операционную систему!

Если установка прошла успешно, откройте консоль (как правило, это можно сделать сочетанием клавиш «ctrl+alt+T»). Теперь можете написать свою первую программу. Например, введите "python3". Если консоль вывела "приветствие", где указана версия программы (например, 3.4.0), то все в порядке, если нет, то нужно установить третью версию «Питона» командой: «sudo apt-get install python3».
Однако это не обязательно. Можно писать код в любом удобном текстовом редакторе, после чего запускать через консоль, а можно пользоваться средой разработки IDLE, идущей в комплекте с дистрибутивом.

Запустите IDLE. Чтобы создать крошечную программу, достаточно написать всего одну строку кода.

print("Hello world!")

Введите этот код в окно IDLE и нажмите «Ввод». Среда мгновенно отзовется действием - выведет на экране требуемый текст. Первая программа готова.



Понравилась статья? Поделиться с друзьями: