1.Введение
▪Лекция
▪Практическое занятие
2.Простые скрипты
▪Лекция
▪Практическое занятие
3.Организация программ
▪Лекция
▪Практическое занятие
4.Объектно-ориентированное программирование
▪Лекция
▪Практическое занятие
5.Автоматизация тестирования
▪Лекция
▪Практическое занятие
6.Функциональное программирование
▪Лекция
▪Практическое занятие
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Пакеты Python: учебник для специалистов по работе с данными.
https://dagster.io/blog/python-packages-primer-1
@pro_python_code
https://dagster.io/blog/python-packages-primer-1
@pro_python_code
dagster.io
Python Packages: a Primer for Data People (part 1 of 2) | Dagster Blog
The foundation of a solid Python project is mastering modules, packages and imports.
SQLAlchemy Основные базовые операции: SELECT-запросы
В этом посте мы обсудим сложные SELECT-запросы, используя как SQLite, так и SQLAlchemy с Python. Наслаждайтесь!
▪Читать
@pro_python_code
В этом посте мы обсудим сложные SELECT-запросы, используя как SQLite, так и SQLAlchemy с Python. Наслаждайтесь!
▪Читать
@pro_python_code
5 приемов Python, которые отличают профессионалов от новичков
В этой статье мы рассмотрим пять подходов senior- и junior-программистов к решению распространенных задач. Все задачи взяты из адвент-календаря. Многие из них повторяются многократно в AoC и в других задачниках по программированию и тестах, с которыми вы можете столкнуться, например, на собеседовании при приеме на работу.
Для понимания разницы между профессионалом и новичком не стоит углубляться в решение всех задач AoC. Остановимся лишь на небольшой их части, позволяющей проиллюстрировать принципиальные отличия senior- от junior-разработчиков.
▪Читать
@pro_python_code
В этой статье мы рассмотрим пять подходов senior- и junior-программистов к решению распространенных задач. Все задачи взяты из адвент-календаря. Многие из них повторяются многократно в AoC и в других задачниках по программированию и тестах, с которыми вы можете столкнуться, например, на собеседовании при приеме на работу.
Для понимания разницы между профессионалом и новичком не стоит углубляться в решение всех задач AoC. Остановимся лишь на небольшой их части, позволяющей проиллюстрировать принципиальные отличия senior- от junior-разработчиков.
▪Читать
@pro_python_code
Модуль sh - это полноценная замена модулю Python subprocess (поддержка PyPy3), которая позволяет вызывать любую программу терминала так, как если бы она была функцией. Этот модуль представляет собой обертку над терминалом.
$> pip install sh
>>> from sh import ifconfig
>>> net_docker = ifconfig('docker0'))
или
>>> import sh
>>> net_docker = sh.ifconfig('docker0')
>>> net_docker
# docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
# inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
# ether 02:42:be:1e:35:41 txqueuelen 0 (Ethernet)
# RX packets 0 bytes 0 (0.0
😎
# RX errors 0 dropped 0 overruns 0 frame 0
# TX packets 0 bytes 0 (0.0
😎
# TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Обратите внимание, что это не функции Python, это запуск бинарных команд терминала, установленных в системе путем динамического разрешения вашего $PATH, как это делает bash, а затем происходит обертывание бинарного файла в функцию. Таким образом, все установленные в систему Linux программы терминала легко доступны из кода Python.
Установка модуля sh в виртуальное окружение:
# создаем виртуальное окружение, если нет
$ python3 -m venv .venv --prompt VirtualEnv
# активируем виртуальное окружение
$ source .venv/bin/activate
# ставим модуль sh
(VirtualEnv):~$ python -m pip install -U sh
▪Github
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка_по_Expected_Conditions_в_Selenium.pdf
5.4 MB
🔥 Полезная шпаргалка для начинающих автоматизаторов браузеров по EC (Expected Conditions) в Selenium+Python
@pro_python_code
@pro_python_code
«Ядро планеты Python»: большой интерактивный учебник по Python, который дополняет сообщество
Учебник охватывает основные темы Python, но коротко и достаточно ёмко, чтобы раскрыть специфику, удобство, красоту и силу этого языка.
Всё с кучей примеров и небольшими дорожными картами по каждой теме, а последнее изменение — меньше недели назад: https://github.com/amaargiru/pycore
#python
Учебник охватывает основные темы Python, но коротко и достаточно ёмко, чтобы раскрыть специфику, удобство, красоту и силу этого языка.
Всё с кучей примеров и небольшими дорожными картами по каждой теме, а последнее изменение — меньше недели назад: https://github.com/amaargiru/pycore
#python
1. Автоматизация тестирования с помощью Selenium и Python - Stepik (INT)
2. Добрый, добрый Python - обучающий курс от Сергея Балакирева - Сергей Балакирев (Stepik) (BEG)
3. Основы программирования на Python - Coursera (BEG)
4. Питонтьютор: Бесплатный курс по программированию с нуля - Виталий Павленко, Владимир Соломатин, Д. П. Кириенко, команда Pythontutor (BEG)
5. "Поколение Python": курс для начинающих - Тимур Гуев, Руслан Чаниев, Анри Табуев (Stepik) (BEG)
6. "Поколение Python": курс для продвинутых - Тимур Гуев, Руслан Чаниев, Благотворительный фонд "Айкью Опшн" (Stepik) (INT)
7. Программирование на Python - Тимофей Бондарев, Павел Федотов (Stepik) (BEG)
8. Python: быстрый старт - Дмитрий Фёдоров (BEG)
9. Python для начинающих (BEG)
10. Python для тех, у кого лапки - Мария Чакчурина, Дмитрий Колосов (Stepik) (INT)
11. Python: основы и применение - Константин Зайцев, Антон Гардер (Stepik) (INT)
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Бесплатный курс от Google: Learn Python basics for data analysis
Основы Python для анализа данных — программирование на Python.
https://learndigital.withgoogle.com/digitalunlocked/course/learn-python-basics-for-data-analysis
@pro_python_code
Основы Python для анализа данных — программирование на Python.
https://learndigital.withgoogle.com/digitalunlocked/course/learn-python-basics-for-data-analysis
@pro_python_code
grow.google
Grow with Google - Training to Grow Your Business & Career- Grow with Google
Explore training and tools to grow your business and online presence and learn digital skills to grow your career and qualify for in-demand jobs.
Линтер анализирует код и ищет в нём ошибки, которые можно обнаружить автоматически. Перед отправкой изменений в репозиторий код всегда полезно проверять с помощью линтера.
Различные IDE и редакторы кода, вроде pycharm и VS Code, содержат встроенные линтеры и подсвечивают проблемные участки кода. Программист сам принимает решение о том, следовать этим рекомендациям или нет. Поначалу сообщения об ошибках, выдаваемые линтерами, могут показаться непонятными. Для того чтобы в них ориентироваться, стоит уделить некоторое время изучению используемого линтера. Это себя окупит.
Если говорить о линтерах, представленных инструментами командной строки, то в этой сфере я порекомендовал бы flake8. Этот линтер обладает разумными настройками, применяемыми по умолчанию. Обычно ошибки, о которых он сообщает, стоит исправлять. Если вы хотите строже относиться к своему коду — взгляните на pylint. Этот линтер способен выявлять множество ошибок, в число которых входят и те, о которых мы тут не говорим.
▍Примеры
Файл, который нужно почистить
В нижеприведённом коде (файл ping.py) можно увидеть некоторые проблемы и без применения линтера.
import requests
import os
def PingExample():
result = requests.get("https://example.com/ping")
Давайте проанализируем его с помощью flake8 и pylint.
Результаты анализа кода с помощью flake8
flake8 ping.py
ping.py:2:1: F401 'os' imported but unused
ping.py:4:1: E302 expected 2 blank lines, found 1
ping.py:5:5: F841 local variable 'result' is assigned to but never used
Результаты анализа кода с помощью pylint
pylint ping.py
************* Module ping
ping.py:1:0: C0114: Missing module docstring (missing-module-docstring)
ping.py:4:0: C0103: Function name "PingExample" doesn't conform to snake_case naming style (invalid-name)
ping.py:4:0: C0116: Missing function or method docstring (missing-function-docstring)
ping.py:5:4: W0612: Unused variable 'result' (unused-variable)
ping.py:2:0: W0611: Unused import os (unused-import)
ping.py:2:0: C0411: standard import "import os" should be placed before "import requests" (wrong-import-order)
--------------------------------------------------------------------
Your code has been rated at -5.00/10 (previous run: -5.00/10, +0.00)
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Если в проекте используются сторонние зависимости, об этом нужно сообщить. Легче всего это сделать, создав файл requirements.txt в корневой директории проекта. В каждой строке этого файла приводятся сведения об одной зависимости. Нужно, кроме того, добавить инструкции по работе с этим файлом в README. Подробности о requirements.txt можно найти в руководстве пользователя по pip.
▍Примеры
Файл requirements.txt для Flask-приложения
Добавление файла requirements.txt в корневую директорию проекта — это самый лёгкий способ отслеживания зависимостей. Можно, помимо сведений о самих зависимостях, дать сведения и об их версиях. Вот пример файла requirements.txt:
gunicorn
Flask>=1.1
Flask-SQLAlchemy
psycopg2
Указание более подробных сведений о зависимостях с использованием файла requirements.in
При работе над любым проектом всегда полезно иметь возможность воспроизведения его окружения. В результате, даже если вышла новая версия какой-нибудь библиотеки, можно использовать старую, проверенную в деле версию, работая с ней до тех пор, пока не будет решено перейти на новую. Это называется «фиксацией зависимостей». Легче всего это можно сделать, прибегнув к pip-tools. При таком подходе в вашем распоряжении окажется два файла: requirements.in и requirements.txt. Второй из них при этом вручную не модифицируют, просто добавляя его в репозиторий вместе с requirements.in. Вот как выглядит файл requirements.in:
gunicorn
Flask>=1.1
Flask-SQLAlchemy
psycopg2
Для того чтобы на основе этого файла был бы автоматически создан requirements.txt, файл requirements.in компилируют, используя команду pip-compile. Вот как выглядит автоматически сгенерированный файл requirements.txt:
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile
#
click==7.1.2 # via flask
flask-sqlalchemy==2.4.4 # via -r requirements.in
flask==1.1.2 # via -r requirements.in, flask-sqlalchemy
gunicorn==20.0.4 # via -r requirements.in
itsdangerous==1.1.0 # via flask
jinja2==2.11.2 # via flask
markupsafe==1.1.1 # via jinja2
psycopg2==2.8.6 # via -r requirements.in
sqlalchemy==1.3.19 # via flask-sqlalchemy
werkzeug==1.0.1 # via flask
# The following packages are considered to be unsafe in a requirements file:
# setuptools
Как видите, готовый файл содержит сведения о точных версиях всех зависимостей.
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM