Самоучитель программирования python. Лаконичный язык программирования. Использование метода POST
В этой подборке мы собрали самые полезные книги о языке программирования Python, которые помогут в изучении как начинающим, так и опытным программистам.
Здесь вы найдете материалы для создания приложений, а также учебные пособия, которые помогут вам ознакомиться с инструментарием, освоить базы данных и повысить свои профессиональные навыки.
Разделы:
Для начинающих
Пособие представляет собой отличное и признанное во всем мире введение в язык Python. Она быстро научит вас писать эффективный высококачественный код. Подойдёт как начинающим программистам, так и тем, у кого уже есть опыт использования других языков. Помимо теории в книге есть тесты, упражнения и полезные иллюстрации - всё, что нужно для изучения Python 2 и 3. Кроме того, вы познакомитесь с некоторыми продвинутыми фичами языка, которые освоены еще не многими специалистами.
Python является мультипарадигменным кроссплатформенным языком программирования, который в последнее время стал особенно популярен на Западе и в таких крупных компаниях, как Google, Apple и Microsoft. Благодаря своему минималистичному синтаксису и мощному ядру он является одним из наиболее производительных и хорошо читаемых ЯП в мире.
Прочитав эту книгу, вы быстро и в увлекательной форме изучите основы языка, затем перейдете к обработке исключений, веб-разработке, работе с SQL, обработке данных и Google App Engine. Также вы узнаете, как писать приложения под Android и многое другое о силе, которую дарует вам Python.
Еще одна признанная книга по Python, в которой вы найдёте 52 специально подобранных упражнения для изучения языка. Разобрав их, вы поймёте, как устроен язык, как правильно писать программы и как исправлять свои собственные ошибки. Рассматриваются следующие темы:
- Установка окружения;
- Организация кода;
- Базовая математика;
- Переменные;
- Строки и текст;
- Взаимодействие с пользователями;
- Работа с файлами;
- Циклы и логика;
- Структуры данных;
- Разработка программ;
- Наследование и композиция;
- Модули, классы и объекты;
- Пакеты;
- Отладка;
- Автоматизация тестирования;
- Разработка игр;
- Веб-разработка.
Эта книга предназначена для начинающих изучать программирование. В ней используется весьма стандартный подход к обучению, но нестандартный язык 🙂 Стоит отметить, что это скорее книга об основах программирования, чем о Python.
Книга «Программирование на Python для начинающих» - отличный вариант для старта. Она является подробным руководством, написанным специально для новичков, желающих освоить данный язык. Познакомившись с основами, вы перейдете к объектно-ориентированному программированию и созданию CGI-сценариев для обработки данных веб-форм, научитесь создавать графические приложения с оконным интерфейсом и распространять их на другие устройства.
С помощью данного учебника вы сможете пройти все ступени от установки интерпретатора до запуска и отладки полноценных приложений.
«Python Crash Course» - это емкое повествование о языке Python. В первой половине книги вы познакомитесь с основными понятиями языка, такими как списки, словари, классы и циклы, и научитесь писать чистый и хорошо читаемый код. Кроме того, вы узнаете, как тестировать свои программы. Во второй половине книги вам будет предложено применить знания на практике, написав 3 проекта: аркадную игру наподобие Space Invaders, приложение для визуализации данных и простое веб-приложение.
Это очень удобная карманная шпаргалка, созданная для Python 3.4 и 2.7. В ней вы найдёте самую необходимую информацию по различным аспектам языка. Затронутые темы:
- Встроенные типы объектов;
- Выражения и синтаксис создания и обработки объектов;
- Функции и модули;
- ООП (у нас есть отдельная );
- Встроенные функции, исключения и атрибуты;
- Методы перегрузки операторов;
- Популярные модули и расширения;
- Опции командной строки и инструменты для разработки;
- Подсказки;
- Python SQL Database API.
Книга для изучения Python с кучей практических примеров.
Практические примеры можно почерпнуть и в нашей рубрике . Например, читайте наше по самостоятельной реализации функции zip.
Цель данной книги - познакомить читателя с популярными инструментами и принятыми в open source сообществе различными рекомендациями по написанию кода. Основы языка Python в этой книге не рассматриваются, ведь она совсем не про это.
Первая часть книги содержит описание различных текстовых редакторов и сред разработки, которые можно использовать для написания Python-программ, а также множества видов интерпретаторов для различных систем. Во второй части книги рассказывается о принятом в сообществе, работающем с открытым исходным кодом, стиле написания кода. Третья часть книги содержит краткий обзор множества библиотек для Python, которые используются в большинстве open source проектов.
Главное отличие данной книги от всех других пособий для начинающих изучать Python в том, что параллельно с изучением теоретического материала читатель знакомится с реализацией проектов различных игр. Таким образом будущий программист сможет лучше понять, как те или иные возможности языка используются в реальных проектах.
В книге рассматриваются основы как языка Python, так и программирования в целом. Отличная книга для первого знакомства с этим языком.
Для продвинутых
Если вы хотите перейти на Python 3 или правильно обновить старый код, написанный на Python 2, то эта книга для вас. А еще для вас - по переводу проекта с Python 2 на Python 3 без боли.
В книге вы найдёте много практических примеров на Python 3.3, каждый из которых подробно разобран. Рассматриваются следующие темы:
- Структуры данных и алгоритмы;
- Строки и текст;
- Числа, даты и время;
- Итераторы и генераторы;
- Файлы и операции чтения / записи;
- Кодирование и обработка данных;
- Функции;
- Классы и объекты;
- Метапрограммирование;
- Модули и пакеты;
- Веб-программирование;
- Конкурентность;
- Системное администрирование;
- Тестирование и отладка;
- Си-расширения.
В ходе чтения этой книги вы разработаете веб-приложение, параллельно изучив практические преимущества разработки через тестирование. Вы разберёте такие темы, как интеграция баз данных, JS-инструменты для автоматизации, NoSQL, веб-сокеты и асинхронное программирование.
В книге подробно рассматривается Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами и каталогами, часто используемые модули стандартной библиотеки. Кроме того, в книге также уделено внимание базе данных SQLite, интерфейсу доступа к базе и способам получения данных из Интернета.
Вторая часть книги целиком посвящена библиотеке PyQt 5, позволяющей создавать приложения с графическим интерфейсом на языке Python. Здесь рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки многопоточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF.
Может, ваши программы на Pyhton и работают, но они могут работать быстрее. Это практическое руководство поможет вам лучше понять устройство языка, и вы научитесь находить в коде узкие места и повышать скорость работы программ, работающих с большими объёмами данных.
Как понятно из названия, цель данной книги - дать наиболее полное понятие фреймворку для разработки веб-приложений Django. Из-за того, что книга была выпущена на русском языке в далеком 2010 году, в ней рассматривается устаревшая версия фреймворка, Django 1.1. Но все равно книга рекомендуется к прочтению, поскольку в ней можно почерпнуть основы Django. А хороших книг по этому фреймворку на русском языке, кроме этой, практически нет.
Авторы Адриан Головатый и Джейкоб Каплан-Мосс подробно рассматривают компоненты фреймворка. В книге достаточно много материала по разработке интернет-ресурсов на Django – от основ до таких специальных тем, как генерация PDF и RSS, безопасность, кэширование и интернационализация. Перед прочтением книги рекомендуется освоить базовые понятия веб-разработки.
Разработка игр
«Making Games with Python & Pygame» - это книга, которая посвящена библиотеке для разработки игр Pygame. В каждой главе даются полный исходный код новой игры и подробные объяснения использованных принципов разработки
Книга «Invent Your Own Computer Games with Python» научит вас программировать на Python на примере разработки игр. В поздних игр рассматривается создание двумерных игр при помощи библиотеки Pygame. Вы научитесь:
- использовать циклы, переменные и логические выражения;
- использовать такие структуры данных, как списки, словари и кортежи;
- отлаживать программы и искать ошибки;
- писать простой ИИ для игр;
- создавать простую графику и анимации для ваших игр.
Анализ данных и машинное обучение
Прокачайте свои навыки, поработав со структурами данных и алгоритмами в новом ключе - научном. Изучите примеры сложных систем с понятными объяснениями. В книге предлагается:
- изучить такие понятия, как массивы NumPy, методы SciPy, обработка сигналов, быстрые преобразования Фурье и хеш-таблицы;
- познакомиться с абстрактными моделями сложных физических систем, фракталами и машинами Тьюринга;
- исследовать научные законы и теории;
- разобрать примеры сложных задач.
В данной книге язык Python рассматривается как инструмент для решения задач, требующих вычислений с обработкой больших объемов данных. Цель данной книги - научить читателя применять стек инструментов исследования данных языка Python для эффективного хранения, манипуляции и понимания данных.
Каждая глава книги посвящена определенной библиотеке для работы с большими данными. В первой главе рассматривается IPython и Jupyter, во второй - NumPy, в третьей - Pandas. Четвертая глава содержит материал о Matplotlib, пятая - о Scikit-Learn.
«Python for Data Analysis» повествует о всевозможных способах обработки данных. Книга является отличным вводным материалом в области научных вычислений. Вот с чем вы познакомитесь:
- интерактивная оболочка IPython;
- библиотека для численных расчётов NumPy:
- библиотека для анализа данных pandas;
- библиотека для пострения графиков matplotlib.
Вы также научитесь измерять данные на временных промежутках и решать аналитические задачи во многих сферах науки.
В этой книге предлагается изучить различные методы анализа данных при помощи Python. Вот чему вы научитесь после прочтения:
- управлять данными;
- решать задачи науки о данных;
- создавать высококлассные визуализации;
- применять линейные регрессии для оценки связей между переменными;
- создавать рекомендательные системы;
- обрабатывать большие данные.
Это пособие понятным языком объясняет принципы обработки естественных языков. Вы научитесь писать программы, способные обрабатывать большие наборы неструктурированных текстов, получите доступ к обширным наборам данных и познакомитесь с основными алгоритмами.
Прочее
Если вы когда-нибудь часами переименовывали файлы или обновляли сотни ячеек таблицы, то знаете, как это выматывает. Хотите научиться автоматизировать такие процессы? В книге «Automate the Boring Stuff with Python» рассказывается о том, как создавать программы, которые будут решать различные рутинные задачи за минуты. После прочтения вы научитесь автоматизировать следующие процессы:
- поиск заданного текста в файлах;
- создание, обновление, перемещение и переименование файлов и папок;
- поиск и скачивание данных в Сети;
- обновление и форматирование данных в Excel-таблицах;
- разделение, слияние и шифрование PDF-файлов;
- рассылка писем и уведомлений;
- заполнение онлайн-форм.
Отличная книга с минимальным порогом вхождения. Рассказывает больше о биологии, нежели о языке, но всем работающим в этой сфере она точно пригодится. Снабжена большим количеством разобранных примеров различной сложности.
В этой книге рассказывается об основах программирования системы Raspberry Pi. Автор уже составил для вас множество скриптов, а также предоставил доходчивое и подробное руководство по созданию своих. Помимо обычных упражнений вам предлагается реализовать три проекта: игру «Виселица», LED-часы и программно управляемого робота.
«Hacking Secret Ciphers with Python» не только рассказывает об истории существующих шифров, но и учит создавать собственные программы для шифрования и взлома шифров. Отличная книга для изучения основ криптографии.
Делитесь полезными книгами по Python в комментариях!
P ython является объектно-ориентированным языком программирования высокого уровня общего назначения, интерпретируемый, интерактивный. Он был создан Guido van Rossum в 1985- 1990 годах. Как исходный код Perl, Python также доступен под лицензией GNU General Public License (). Python назван в честь телешоу под названием «Летающий цирк Монти Пайтона».
Python 3.0 был выпущен в 2008. Хотя эта версия должна быть несовместной с прошлой версией, позже многие из его важных особенностей были импортированы для совместимости с версией 2.7. Этот учебник описывает достаточно для понимания языка программирования Python версии 3.
Аудитория
Этот учебник предназначен для программистов, которые хотят усовершенствовать свои навыки Python на Python 3 . Этот учебник может также использоваться для изучения языка программирования Python с нуля для начинающих.
Предпосылки
Вы должны иметь общее представление о компьютерном программировании. Основное понимание любого из языков программирования является плюсом.
Выполнение программы на Python
Минимальный пример программы на Python:
#!/usr/bin/python3 print ("Hello, Python!")
Python 3 - это современный язык, на котором просто и приятно писать программы.
Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести. Вот программа, которая делает несколько вычислений:
Print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш - это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках
Для ввода данных в программу мы используем функцию input() . Она считывает одну строку.
Вот программа, которая считывает имя пользователя и приветствует его:
Пётр print("Как вас зовут?") name = input() # считываем строку и кладём её в переменную name print("Здравствуйте, " + name + "!")
Мы будем писать программы, которые считывают данные, перерабатывают их и выводят какой-то результат. При запуске на компьютере такие программы считывают данные, которые пользователь вводит с клавиатуры, а результат выводят на экран.
Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной - например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:
5 7 a = input() b = input() s = a + b print(s)
Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.
Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.
В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка "hello" – это объект «строка "hello" ».
Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) - в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:
First = 5 second = 7 print(first * second) first = "5" second = "7" print(first * second)
Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int("23") вернет число 23 .
Вот пример правильной программы, которая считывает два числа и выводит их сумму:
5 7 a = int(input()) b = int(input()) s = a + b print(s)
Пошаговая инструкция для всех, кто хочет изучить программирование на 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 - это популярный и мощный язык сценариев, с помощью которого вы можете сделать все что захотите. Например, вы можете сканировать веб-сайты и собирать с них данные, создавать сетевые и инструменты, выполнять вычисления, программировать для 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: