Объектно-ориентированный язык программирования Python является одним из наиболее востребованных на 2021 год на ИТ-рынке
Автор - Ван Россум, Гвидо - Нидерланды
Установка машины разработчика на Microsoft Windows 10
- Скачать дистрибутив Python
- Установить IDE PyCharm
- Настроить учётную запись на GitHub
Материалы для изучения языка (в порядке обнаружения)
- Как выучить python - YouTube-канал Oldest Junior
- Курсы Тимофея Хирьянова, МФТИ
- Mastering Python for Networking and Security Second Edition
Интересные библиотеки
NetworkX - работа с графами
- NetworkX для удобной работы с сетевыми структурами (09.08.2011)
- Introduction to NetworkX in Python (10.06.2020)
- Graph Data Science With Python/NetworkX
- Introduction to Data Science - NetworkX Tutorial (10.06.2020)
- YouTube
Работа с файлами
Microsoft
Работа с базами данных
MySQL
Источники
Пример программы:
import mysql.connector
from mysql.connector import connect, Error
print("MySQL Connector/Python version: {0}".format(mysql.connector.__version__))
print("Version as tuple:")
print(mysql.connector.__version_info__)
print("")
print("API level: {0}".format(mysql.connector.apilevel))
print("Parameter style: {0}".format(mysql.connector.paramstyle))
print("Thread safe: {0}".format(mysql.connector.threadsafety))
try:
connection = connect(
host="ivlytkin.beget.tech",
user="ivlytkin_zenmon",
password="пароль",
database="ivlytkin_zenmon",
)
print(connection)
if connection.is_connected():
db_Info = connection.get_server_info()
print("Connected to MySQL Server version ", db_Info)
cursor = connection.cursor()
cursor.execute("select database();")
record = cursor.fetchone()
print("You're connected to database: ", record)
show_db_query: str = "SHOW DATABASES"
with connection.cursor() as cursor:
cursor.execute(show_db_query)
for db in cursor:
print(db)
print(connection)
create_movies_table_query = """
CREATE TABLE movies(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
release_year YEAR(4),
genre VARCHAR(100),
collection_in_mil INT
)
"""
with connection.cursor() as cursor:
cursor.execute(create_movies_table_query)
connection.commit()
create_reviewers_table_query = """
CREATE TABLE reviewers (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(100),
last_name VARCHAR(100)
)
"""
with connection.cursor() as cursor:
cursor.execute(create_reviewers_table_query)
connection.commit()
create_ratings_table_query = """
CREATE TABLE ratings (
movie_id INT,
reviewer_id INT,
rating DECIMAL(2,1),
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(reviewer_id) REFERENCES reviewers(id),
PRIMARY KEY(movie_id, reviewer_id)
)
"""
with connection.cursor() as cursor:
cursor.execute(create_ratings_table_query)
connection.commit()
except Error as e:
print(e)
PostgreSQL
- Psycopg 3.1 released - 30.08.2022
- Python PostgreSQL Tutorial Using Psycopg2 - 09.03.2021
Анализ пакетов на Python
Positive Technologies - PyAnalisys - выявление подозрительных и вредоносных Python-пакетов.
PT PyAnalysis — сервис для выявления подозрительных и вредоносных Python-пакетов, который можно интегрировать в процесс безопасной разработки ПО. Cервис нацелен на анализ пакетов из глобального репозитория PyPI. Мы являемся независимыми аудиторами этого репозитория и за девять месяцев исследования нашли в нем более 200 вредоносных пакетов. C точки зрения пользователя сервис представляет собой API, который позволяет проверить пакет по его названию и получить вердикт относительно его функций: чистый, подозрительный, опасный.
Пример программы - TestPyAnalysis
Python Package Index
Указатель пакетов Python’а (Python Package Index — PyPI) — это хранилище программного обеспечения для языка программирования Python. PyPI помогает вам находить и устанавливать программное обеспечение, разработанное и распространяемое сообществом Python. Подробнее об установке пакетов.
Авторы пакетов используют PyPI для распространения своего программного обеспечения. Узнайте, как упаковать ваш Python-код для PyPI.
asyncio
asyncio - это библиотека для написания параллельного кода с использованием синтаксиса async/await. asyncio используется в качестве основы для нескольких асинхронных фреймворков Python, которые обеспечивают высокопроизводительные сетевые и веб-серверы, библиотеки соединений с базами данных, распределенные очереди задач и т.д.
Pydanctic
Изучить (из FAQ Михаила Крыжановского)
- aiogram - основной python-фреймворк для разработки ботов
- aiogram-dialog - управление диалогами
- fluentogram - интернационализация
- redis - хранилище ключ-значение, кэш
- postgres - реляционная база данных
- sqlalchemy - ORM
- nats - очередь, FSM-storage
- elastic - поисковый движок
- fastAPI - API
- taskiq - планировщик
- clickhouse - колоночная база данных
- prometheus/grafana - система мониторинга, аналитика
- vector - логирование
- kafka - очередь
- manticore - поисковый движок
- jaeger - трассировка сервисов
- aiohttp - асинхронный HTTP-клиент/сервер
Data classes
Хабр
- Введение в Data classes - 02.07.2018
Одна из новых возможностей, появившихся в Python 3.7 — классы данных (Data classes). Они призваны автоматизировать генерацию кода классов, которые используются для хранения данных. Не смотря на то, что они используют другие механизмы работы, их можно сравнить с "изменяемыми именованными кортежами со значениями по умолчанию".