Python - это популярный и мощный язык сценариев, с помощью которого вы можете сделать все что захотите. Например, вы можете сканировать веб-сайты и собирать с них данные, создавать сетевые и инструменты, выполнять вычисления, программировать для Raspberry Pi, разрабатывать графические программы и даже видеоигры. На Python можно \\ писать системные программы, независимые от платформы.
В этой статье мы рассмотрим основы программирования на Python, мы постараемся охватить все основные возможности, которые вам понадобятся чтобы начать пользоваться языком. Мы будем рассматривать использование классов и методов для решения различных задач. Предполагается, что вы уже знакомы с основами и синтаксисом языка.
Содержание статьи:
Что такое Python?
Я не буду вдаваться в историю создания и разработки языка, это вы без труда узнать из видео, которое будет прикреплено ниже. Важно отметить, что Python - скриптовый язык. Это означает, ваш код проверяется на ошибки и сразу же выполняется без какой-либо дополнительной компиляции или переработки. Такой подход еще называется интерпретируемым.
Это снижает производительность, но очень удобно. Здесь присутствует интерпретатор, в который вы можете вводить команды и сразу же видеть их результат. Такая интерактивная работа очень сильно помогает в обучении.
Работа в интерпретаторе
Запустить интерпретатор Python очень просто в любой операционной системе. Например, в Linux достаточно набрать команду python в терминале:
python
В открывшемся приглашении ввода интерпретатора мы видим версию Python, которая сейчас используется. В наше время очень сильно распространены две версии Python 2 и Python 3. Они обе популярны, потому что на первой было разработано множество программ и библиотек, а вторая - имеет больше возможностей. Поэтому дистрибутивы включают обе версии. По умолчанию запускается вторая версия. Но если вам нужна версия 3, то нужно выполнить:
python3
Именно третья версия будет рассматриваться в этой статье. А теперь рассмотрим основные возможности этого языка.
Операции со строками
Строки в Python неизменяемые, вы не можете изменить один из символов строки. Любое изменение содержимого требует создания новой копии. Откройте интерпретатор и выполняйте перечисленные ниже примеры, для того чтобы лучше усвоить все написанное:
1. Объединение строк
2. Умножение строк
3. Объединение с преобразованием
Вы можете объединить строку с числом или логическим значением. Но для этого нужно использовать преобразование. Для этого существует функция str():
4. Поиск подстроки
Вы можете найти символ или подстроку с помощью метода find:
Этот метод выводит позицию первого вхождения подстроки losst.pro если она будет найдена, если ничего не найдено, то возвращается значение -1. Функция начинает поиск с первого символа, но вы можете начать с энного, например, 26:
В этом варианте функция вернет -1, поскольку строка не была найдена.
5. Получение подстроки
Мы получили позицию подстроки, которую ищем, а теперь как получить саму подстроку и то, что после нее? Для этого используйте такой синтаксис [начало:конец], просто укажите два числа или только первое:
Первая строка выведет подстроку от первого до второго символа, вторая - от второго и до конца. Обратите внимание, что отсчет начинается с нуля. Чтобы выполнять отсчет в обратном порядке, используйте отрицательное число.
6. Замена подстроки
Вы можете заменить часть строки с помощью метода replace:
Если вхождений много, то можно заменить только первое:
7. Очистка строк
Вы можете удалить лишние пробелы с помощью функции strip:
Также можно удалить лишние пробелы только справа rstrip или только слева - lstrip.
8. Изменение регистра
Для изменения регистра символов существуют специальные функции:
9. Конвертирование строк
Есть несколько функций для конвертирования строки в различные числовые типы, это int(), float() , long() и другие. Функция int() преобразует в целое, а float() в число с плавающей точкой:
10. Длина строк
Вы можете использовать функции min(), max(), len() для расчета количества символов в строке:
Первая показывает минимальный размер символа, вторая - максимальный, а третья - общую длину строки.
11. Перебор строки
Вы можете получить доступ к каждому символу строки отдельно с помощью цикла for:
Для ограничения цикла мы использовали функцию len(). Обратите внимание на отступ. Программирование на python основывается на этом, здесь нет скобок для организации блоков, только отступы.
Операции с числами
Числа в Python достаточно просто объявить или применять в методах. Можно создавать целые числа или числа с плавающей точкой:
1. Округление чисел
Вы можете округлить число с помощью функции round, просто укажите сколько знаков нужно оставить:
2. Генерация случайных чисел
Получить случайные числа можно с помощью модуля random:
По умолчанию число генерируется из диапазона от 0,0 до 1,0. Но вы можете задать свой диапазон:
Операции с датой и временем
Язык программирования Python имеет модуль DateTime, который позволяет выполнять различные операции с датой и временем:
В примере показано как извлечь нужное значение из объекта. Вы можете получить разницу между двумя объектами:
Вы можете сами создавать объекты даты с произвольным значением:
1. Форматирование даты и времени
Метод strftime позволяет изменить формат даты и времени зависимо от выбранного стандарта или указанного формата. Вот основные символы форматирования:
- %a - день недели, сокращенное название;
- %A - день недели, полное название;
- %w - номер дня недели, от 0 до 6;
- %d - день месяца;
- %b - сокращенное название месяца;
- %B - полное название месяца;
- %m - номер месяца;
- %Y - номер года;
- %H - час дня в 24 часовом формате;
- %l - час дня в 12 часовом формате;
- %p - AM или PM;
- %M - минута;
- %S - секунда.
2. Создать дату из строки
Вы можете использовать функцию strptime() для создания объекта даты из строки:
Операции с файловой системой
Управление файлами выполняется очень просто в язык программирования Python, это лучший язык для работы с файлами. Да и вообще, можно сказать, что Python - это самый простой язык.
1. Копирование файлов
Для копирования файлов нужно использовать функции из модуля subutil:
Если file1 - символическая ссылка, операция копирования все равно создаст отдельный файл. Если вы хотите скопировать именно символическую ссылку используйте такую конструкцию:
2. Перемещение файлов
Перемещение файлов выполняется с помощью функции move:
Функция rename из модуля os позволяет переименовывать файлы:
3. Чтение и запись текстовых файлов
Вы можете использовать встроенные функции для открытия файлов, чтения или записи данных в них:
Сначала нужно открыть файл для работы с помощью функции open. Для чтения данных из файла используется функция read, прочитанный текст будет сохранен в переменную. Вы можете указать количество байт, которые нужно прочитать:
Если файл слишком большой, вы можете разбить его на строки и уже так выполнять обработку:
Чтобы записать данные в файл, его сначала нужно открыть для записи. Есть два режима работы - перезапись и добавление в конец файла. Режим записи:
И добавление в конец файла:
4. Создание директорий
Чтобы создать директорию используйте функцию mkdir из модуля os:
5. Получение времени создания
Вы можете использовать функции getmtime(), getatime() и getctime() для получения времени последнего изменения, последнего доступа и создания. Результат будет выведен в формате Unix, поэтому его нужно конвертировать в читаемый вид:
6. Список файлов
С помощью функции listdir() вы можете получить список файлов в папке:
Для решения той же задачи можно использовать модуль glob:
7. Сериализация объектов Python
Сериализация позволяет сохранить объект в строку, для его последующего восстановления. Для этого используйте модуль pickle:
Затем для восстановления объекта используйте:
8. Сжатие файлов
Стандартная библиотека Python позволяет работать с различными форматами архивов, например, zip, tar, gzip, bzip2. Чтобы посмотреть содержимое файла используйте:
А для создания zip архива:
Также вы можете распаковать архив:
Вы можете добавить файлы в архив так:
9. Разбор CSV и Exel файлов
С помощью модуля pandas можно смотреть и разбирать содержимое CSV и Exel таблиц. Сначала нужно установить модуль с помощью pip:
sudo pip install pandas
Затем для разбора наберите:
По умолчанию pandas использует первую колонку для заголовков каждой из строк. Вы можете задать колонку для индекса с помощью параметра index_col или указать False, если он не нужен. Чтобы записать изменения в файл используйте функцию to_csv:
Таким же образом можно разобрать файл Exel:
Если нужно открыть все таблицы, используйте:
Затем можно записать все данные обратно:
Работа с сетью в Python
Программирование на Python 3 часто включает работу с сетью. Стандартная библиотека Python включает в себя возможности работы с сокетами для доступа к сети на низком уровне. Это нужно для поддержки множества сетевых протоколов.
Этот код подключается к порту 4040 на машине 192.168.1.5. Когда сокет открыт, вы можете отправлять и получать данные:
Нам необходимо писать символ b, перед строкой, потому что надо передавать данные в двоичном режиме. Если сообщение слишком большое, вы можете выполнить итерацию:
Для получения данных вам тоже нужно открыть сокет, только используется метод my_sock_recv:
Здесь мы указываем сколько данных нужно получить - 20000, данные не будут переданы в переменную, пока не будет получено 20000 байт данных. Если сообщение больше, то для его получения нужно создать цикл:
Если буфер пуст, туда будет записано полученное сообщение.
Работа с почтой
Стандартная библиотека Python позволяет получать и отправлять электронные сообщения.
1. Получение почты от POP3 сервера
Для получения сообщений мы используем POP сервер:
Модуль getpass позволяет получить пароль пользователя безопасным образом, так что он не будет отображаться на экране. Если POP сервер использует защищенное соединение, вам нужно использовать класс POP3_SSL. Если подключение прошло успешно, вы можете взаимодействовать с сервером:
Для завершения работы используйте:
2. Получение почты от IMAP сервера
Для подключения и работы с сервером IMAP используется модуль imaplib:
Если ваш IMAP сервер использует защищенное соединение, нужно использовать класс IMAP4_SSL. Для получения списка сообщений используйте:
Затем вы можете выполнить цикл по выбранному списку и прочитать каждое сообщение:
Но, не забудьте закрыть соединение:
3. Отправка почты
Для отправки почты используется протокол SMTP и модуль smtplib:
Как и раньше, для защищенного соединения используйте SMTP_SSL. Когда соединение будет установлено, можно отправить сообщение:
Работа с веб-страницами
Программирование на Python часто используется для написания различных скриптов для работы с веб.
1. Веб краулинг
Модуль urllib позволяет выполнять запросы к веб-страницам различными способами. Для отправки обычного запроса используется класс request. Например, выполним обычный запрос страницы:
2. Использование метода POST
Если вам нужно отправить веб-форму, необходимо использовать не GET запрос, а POST:
3. Создание веб-сервера
С помощью класса Socket вы можете принимать входящие подключения, а значит можете создать веб-сервер с минимальными возможностями:
Когда сервер создан. вы можете начать принимать соединения:
И не забудьте закрыть соединение:
Многопоточность
Как и большинство современных языков, Python позволяет запускать несколько параллельных потоков, которые могут быть полезными, если нужно выполнить сложные вычисления. В стандартной библиотеке есть модуль threading, который содержит класс Therad:
Если функция работает слишком долго, вы можете проверить все ли в порядке, с помощью функции is_alive(). Иногда вашим потокам нужно получать доступ к глобальным ресурсам. Для этого используются блокировки:
Выводы
В этой статье мы рассмотрели основы программирования python. Теперь вы знаете большинство часто используемых функций и можете применять их в своих небольших программах. Вам понравиться программирование на Python 3, это очень легко! Если у вас остались вопросы, спрашивайте в комментариях!
На завершение статьи отличная лекция о Python:
Источник: likegeeks.com
Вот супер было бы, если бы ещё к описанию всех этих функциональных возможностей обозначили области применения. Зачем бывает подстановка какая-либо в каких случаях применима и т.д. Нет связующего алгоритма - тока описание загадочного инструментария)) говорю как нуб)
Я канеш все понимаю, но то что вы делаете в примере с конкатенацией строк - это кошмар. За переопределение литерала конструктора в иных местах бьют ногами.
Вот это: str = "welcome " + "to python" такой швах, что я прям и не знаю. Можно же выбрать другое имя переменной, а не трогать зарезервированные слова? Если потом попытаться вызвать конструктор для преобразования числа в строку (например str(123)) то будет TypeError.
Пожалуйста, поправьте.
Да переопределение стандартных функций в Python происходит быстро и не заметно, странно что сам язык никак не реагирует, не смотря на то что язык строго типизированный.
В PHP такой коллизии не произошло-бы, т.к. все переменные начинаются со знака $.
Интересно почему в последнее время все кому не лень рекламируют Python. Зато нез
аслуженно забыли такой замечательный язык как Perl. Он более соответствует Linux так как здесь собрано всё лучшее из bash sed awk c. И в отличии от Python котор
ый ограничивает пользователя, в Perl имется множество способов что-то сделать, в Python только один. Да и код получается на порядок короче. Одна строка на Perl
заменяет десятки на Python пример открыть файл perl -pE '' ваш_файл или perl -e '@lin=;print @lin' ваш_файл. Выполнить программу perl -e 'system (ваша любая программа)' и всё, а в Python надо импортировать класс os и использовать методы этого класса(их надо выучить или искать в справочниках).
Вобщем Perl для лентяев. А Python для любителей стучать по клаве.
Как из Python3 заполнить таблицу Libreoffice calc ?
Рад что Ваш ресурс затронул этот язык. Могли бы вы поподробнее разобрать работу пайтона с видеопотоками а конкретно с H.264, интересуют функции, переменные, в общем всё.
Заранее спасибо.
возможно это глупый вопрос но, что за дистрибутив. Или какой лучше дистрибутив использовать для python не щетая ubuntu, debian, fedora
Лучше использовать тот дистрибутив в котором вы лучше всего разбираетесь, тогда как минимум не придется тратить время на изучение особенностей дистрибутива и можно будет заниматься Python. Ubuntu не так уж плоха.
А, BASH чем хуже????
Python, без сомнения, синтаксический язык очень интересный..., но то, что Google заинтересовались python, при наличии более оптимизированных языков под определенные архитектуры (не говоря о кроссах)... похоже на рекламную акцию... популяризируют одно, сами используют другое! Для чего?! Для создания спроса на вычислительные ресурсы. В место повышения компьютерной грамотности, занимаются рекламой.. хотя под питон много библиотек..