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
🔍 Python: Создание сканера портов
В этом уроке я проведу вас через процесс создания простого сканера портов с помощью Python.
▪ Читать
@pro_python_code
В этом уроке я проведу вас через процесс создания простого сканера портов с помощью Python.
▪ Читать
@pro_python_code
📌 Poetry
Poetry — это удобный инструмент для управления версиями и зависимостями Python. С его помощью легко контролировать и корректировать версии, а также централизованно управлять зависимостями. Из всех способов сделать это рекомендую poetry.
Теперь кратко о том, как использовать этот инструмент.
Основой управления зависимостями в poetry является файл pyproject.toml. В нашем проекте он начинается следующим образом:
Как видите, заголовок определяет и раскрывает основные свойства проекта. За ним следует абзац, определяющий необходимые зависимости.
Нужно просто выполнить poetry install в терминале, и poetry автоматически создаст среду Python со всеми установленными зависимостями. Затем можно войти в него через poetry shell.
После добавления новой зависимости нужно запустить poetry update. Это создаст или обновит файл poetry.lock, который можно представить как двоичное представление вышеуказанных зависимостей. Его также нужно будет добавить в репозиторий, и описанный выше процесс установки требований использует этот файл.
@pro_python_code
Poetry — это удобный инструмент для управления версиями и зависимостями Python. С его помощью легко контролировать и корректировать версии, а также централизованно управлять зависимостями. Из всех способов сделать это рекомендую poetry.
Теперь кратко о том, как использовать этот инструмент.
Основой управления зависимостями в poetry является файл pyproject.toml. В нашем проекте он начинается следующим образом:
[tool.poetry]
name = "Sample Python Project"
version = "0.1.0"
description = "Sample Python repository"
authors = ["hermanmichaels <[email protected]>"]
[tool.poetry.dependencies]
python = "3.10"
matplotlib = "3.5.1"
mypy = "0.910"
numpy = "1.22.3"
pytest = "7.1.2"
black = "22.3.0"
flake8 = "4.0.1"
isort = "^5.10.1"
Как видите, заголовок определяет и раскрывает основные свойства проекта. За ним следует абзац, определяющий необходимые зависимости.
Нужно просто выполнить poetry install в терминале, и poetry автоматически создаст среду Python со всеми установленными зависимостями. Затем можно войти в него через poetry shell.
После добавления новой зависимости нужно запустить poetry update. Это создаст или обновит файл poetry.lock, который можно представить как двоичное представление вышеуказанных зависимостей. Его также нужно будет добавить в репозиторий, и описанный выше процесс установки требований использует этот файл.
@pro_python_code
🔥 5 примеров использования Redis с кодом на Python
1. Caching
Redis можно использовать для кэширования часто используемых данных, снижая нагрузку на ваше основное хранилище данных. Вот пример того, как реализовать кэширование с помощью Redis в Python
2. Pub/Sub (Publish/Subscribe):
Redis поддерживает паттерн pub/sub, позволяя вам создавать системы обмена сообщениями. Вот пример:
3. Rate Limiting:
Redis можно использовать для реализации ограничения скорости, чтобы контролировать количество запросов или операций за период времени. Пример:
4. Session Storage:
Redis можно использовать для хранения данных сеанса в веб-приложениях. Пример:
5. Leaderboard:
Redis можно использовать для создания таблиц лидеров или рейтингов на основе набранных баллов. Пример:
Это лишь несколько примеров того, как Redis можно использовать в Python. Redis предоставляет множество других мощных функций и структур данных, которые можно использовать в различных приложениях.
▪Github
@pro_python_code
1. Caching
Redis можно использовать для кэширования часто используемых данных, снижая нагрузку на ваше основное хранилище данных. Вот пример того, как реализовать кэширование с помощью Redis в Python
import redis
# Connect to Redis
r = redis.Redis(host='localhost', port=6379, db=0)
def get_data_from_cache(key):
# Check if data exists in the cache
if r.exists(key):
# Retrieve data from the cache
data = r.get(key)
return data.decode('utf-8') # Convert bytes to string
else:
# Fetch data from the primary data source
data = fetch_data_from_source()
# Store data in the cache with a timeout of 1 hour
r.setex(key, 3600, data)
return data
2. Pub/Sub (Publish/Subscribe):
Redis поддерживает паттерн pub/sub, позволяя вам создавать системы обмена сообщениями. Вот пример:
import redis
import time
# Connect to Redis
r = redis.Redis(host='localhost', port=6379, db=0)
def publish_message(channel, message):
# Publish a message to the specified channel
r.publish(channel, message)
def subscribe_channel(channel):
# Subscribe to a channel and process incoming messages
pubsub = r.pubsub()
pubsub.subscribe(channel)
for message in pubsub.listen():
print(message['data'].decode('utf-8')) # Process the received message
3. Rate Limiting:
Redis можно использовать для реализации ограничения скорости, чтобы контролировать количество запросов или операций за период времени. Пример:
import redis
# Connect to Redis
r = redis.Redis(host='localhost', port=6379, db=0)
def check_rate_limit(ip_address):
# Increment the request count for the IP address
request_count = r.incr(ip_address)
# If the count exceeds the limit (e.g., 100 requests per minute), deny the request
if request_count > 100:
return False
return True
4. Session Storage:
Redis можно использовать для хранения данных сеанса в веб-приложениях. Пример:
import redis
import uuid
# Connect to Redis
r = redis.Redis(host='localhost', port=6379, db=0)
def create_session(user_id):
# Generate a unique session ID
session_id = str(uuid.uuid4())
# Store the session data in Redis with a timeout of 30 minutes
r.setex(session_id, 1800, user_id)
return session_id
def get_user_id_from_session(session_id):
# Retrieve the user ID from the session data in Redis
user_id = r.get(session_id)
if user_id is not None:
return user_id.decode('utf-8') # Convert bytes to string
else:
return None
5. Leaderboard:
Redis можно использовать для создания таблиц лидеров или рейтингов на основе набранных баллов. Пример:
import redis
# Connect to Redis
r = redis.Redis(host='localhost', port=6379, db=0)
def update_score(player_id, score):
# Update the score of a player
r.zadd('leaderboard', {player_id: score})
def get_leaderboard():
# Get the top 10 players from the leaderboard
leaderboard = r.zrevrange('leaderboard', 0, 9, withscores=True)
for player, score in leaderboard:
print(f"Player: {player.decode('utf-8')}, Score: {score}")
Это лишь несколько примеров того, как Redis можно использовать в Python. Redis предоставляет множество других мощных функций и структур данных, которые можно использовать в различных приложениях.
▪Github
@pro_python_code
Polars — это библиотека Python для работы с датафреймами, по скорости превосходящая Pandas.
Как и Pandas, Polars можно использовать для парсинга сайтов. С ее помощью можно читать любые CSV-файлы, опубликованные на сайте, и даже извлекать таблицы из HTML-страниц.
Однако в настоящее время в Polars нет функции .read_html, как в Pandas. Поэтому я покажу обходной путь, позволяющий превратить таблицы с HTML-страниц в Polars-датафреймы.
Скрейпинг нескольких CSV-файлов с использованием Polars
Не скачивайте по одному CSV-файлы, загруженные на сайт, а прочитайте их с помощью Polars. Для этого нужно получить ссылку на файлы и использовать .read_csv.
Мы используем сайт Football-Data, который предоставляет исторические данные о футбольных матчах высших лиг всего мира. Проведем скрейпинг CSV-файла из Premier League (Премьер-лига).
Чтобы CSV-файл “Премьер-лига” оказался в списке сверху, нужно сначала получить его ссылку. Для этого наведите курсор на CSV-файл и нажмите “Copy Link Address” (“Копировать адрес ссылки”).
Получаем такую ссылку.
Теперь прочитаем ее с Polars.
import polars as pl
pl.read_csv('https://www.football-data.co.uk/mmz4281/2122/E0.csv')
Получаем датафрейм Polars со всеми данными:Но это только CSV-файл с данными Премьер-лиги. Чтобы получить файлы с данными других лиг, таких как Championship (Чемпионат), League 1 (Лига 1) и League 2 (Лига 2), нужно добавить цикл for.
Вот как это сделать:
import polars as pl
leagues = ['E0', 'E1', 'E2', 'E3', 'EC'] # список лиг
frames = []
for league in leagues:
df = pd.read_csv(root + "2122" + "/" + league + ".csv")
frames.append(df)
Приведенный выше цикл извлечет CSV-файлы из всех соревнований в сезоне 21/22. Список leagues содержит идентификатор каждой лиги. Например, “E0” означает Премьер-лигу.
Те же шаги можно выполнить для извлечения файлов из нескольких сезонов.
Теперь посмотрим, как извлекать данные из таблиц на HTML-страницах.
Скрейпинг HTML-страниц с Polars (обходной путь)
Polars нет функции .read_html, которая позволяла бы легко извлекать таблицы из HTML-страниц. Однако есть обходной путь, который поможет превратить таблицы из HTML-страниц в Polars-датафреймы.
Для этого в дополнение к Polars нужно установить следующие библиотеки:
!pip install pandas
!pip install lxml
!pip install pyarrow
Pandas и lxml помогут извлечь данные, а pyarrow понадобится для превращения Pandas-датафрейма в Polars-датафрейм.
Извлечем табличные данные из статьи Википедии “List of The Simpsons episodes (seasons 1–20) (“Список эпизодов “Симпсонов”, сезоны 1–20”):
Сначала используем .read_html Pandas для извлечения таблиц из Википедии:
import pandas as pd
my_list = pd.read_html('https://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes_(seasons_1%E2%80%9320)')
my_list содержит список датафреймов. Каждый датафрейм — это таблица со страницы Википедии.
Выберем случайную таблицу и назовем ее pandas_df.
pandas_df = my_list[5]
Теперь нужно использовать .from_pandas, чтобы превратить Pandas-датафрейм в Polars-датафрейм.
polars_df = pl.from_pandas(pandas_df)
Теперь у нас есть Polars-датафрейм со всеми собранными данными.
Чтобы превратить все Pandas-датафреймы из my_list в Polars-датафреймы, можно использовать списковое включение.
my_new_list = [pl.from_pandas(pandas_df) for pandas_df in my_list]
Вот и все! Теперь вы можете пользоваться всеми преимуществами Polars! Чтобы узнать больше о Polars, ознакомьтесь с официальной документацией или посмотрите полное руководство по Polars.
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
9 скриптов автоматизации Python для решения проблем
В нашей повседневной работе нам нужно выполнять некоторые скучные и повторяющиеся задачи, такие как копирование файлов, перемещение файлов, отправка Gmail, создание резервных копий, перевод текста и многое другое, но теперь вы можете автоматизировать их и сэкономить большую часть своего драгоценного времени. В этой статье я покажу вам 9 скриптов Python для автоматизации задач.
Читать
@pro_python_code
В нашей повседневной работе нам нужно выполнять некоторые скучные и повторяющиеся задачи, такие как копирование файлов, перемещение файлов, отправка Gmail, создание резервных копий, перевод текста и многое другое, но теперь вы можете автоматизировать их и сэкономить большую часть своего драгоценного времени. В этой статье я покажу вам 9 скриптов Python для автоматизации задач.
Читать
@pro_python_code
PyGame: учебник по программированию игр на Python
Когда я начал изучать компьютерное программирование в конце прошлого тысячелетия, это было вызвано моим желанием писать компьютерные игры. Я пытался понять, как писать игры на каждом языке и на каждой платформе, которую я изучил, включая Python. Так я обнаружил pygame и научился использовать его для написания игр и других графических программ.
В этой статье вы сможете самостоятельно реализовать свою первую игру, опираясь на данное руководство!
Читать
@pro_python_code
Когда я начал изучать компьютерное программирование в конце прошлого тысячелетия, это было вызвано моим желанием писать компьютерные игры. Я пытался понять, как писать игры на каждом языке и на каждой платформе, которую я изучил, включая Python. Так я обнаружил pygame и научился использовать его для написания игр и других графических программ.
В этой статье вы сможете самостоятельно реализовать свою первую игру, опираясь на данное руководство!
Читать
@pro_python_code
Python itertools. Хитрый способ избежать вложенных циклов
https://www.youtube.com/watch?v=TSvjYKIY01I&t=24s
@pro_python_code
https://www.youtube.com/watch?v=TSvjYKIY01I&t=24s
@pro_python_code
🧑💻 38 языков программирования. Я попробовал их все!
В этой статье мне бы хотелось поделиться с вами своим опыт знакомства с более чем 30 языками программирования. Я надеюсь, что, ознакомившись с данным пособием, вы узнаете что-то новое и сможете выбрать язык программирования для собственных целей.
▪ Читать
@pro_python_code
В этой статье мне бы хотелось поделиться с вами своим опыт знакомства с более чем 30 языками программирования. Я надеюсь, что, ознакомившись с данным пособием, вы узнаете что-то новое и сможете выбрать язык программирования для собственных целей.
▪ Читать
@pro_python_code
Модель SQLAlchemy с базой данных SQL Server в Python
В этой статье я покажу вам, как создать модель на основе существующей базы данных SQL Server, используя ту же файловую структуру, чтобы сохранить организованность нашего проекта. Это означает, что каждый класс и модель базы данных будут храниться в отдельном файле.
▪ Читать
@pro_python_code
В этой статье я покажу вам, как создать модель на основе существующей базы данных SQL Server, используя ту же файловую структуру, чтобы сохранить организованность нашего проекта. Это означает, что каждый класс и модель базы данных будут храниться в отдельном файле.
▪ Читать
@pro_python_code
20 полезных однострочников на Python.
1. Поменять местами две переменные:
2. Найти максимальное или минимальное значение в списке:
3. Найти индекс максимального или минимального значения в списке:
4. Конкатенация списка строк:
5. Подсчет вхождений элемента в список:
6. Переворачиваем строку:
7. Преобразование строки в список символов:
8. Сортировка списка в порядке убывания:
9. Удаление дубликатов из списка:
10. Вычислить сумму списка чисел:
11. Проверить, все ли элементы списка удовлетворяют условию:
12. Проверьте, удовлетворяет ли условию любой элемент списка:
13. Фильтр списка на основе условия
14. Получение последнего элемента списка:
15. Получение уникальных элементов и их количества в списке:
16. Сжимаем вложенный список:
flattened_list = [item for sublist in nested_list for item in sublist]
```
17. Найдите факториал числа:
factorial = 1 if num == 0 else num * factorial(num - 1)
18. Проверить, является ли строка палиндромом:
19. Преобразование списка в строку, разделенную запятым:
@pro_python_code
1. Поменять местами две переменные:
``
a, b = b, a
```
2. Найти максимальное или минимальное значение в списке:
max_value = max(lst)
min_value = min(lst)
3. Найти индекс максимального или минимального значения в списке:
max_index = lst.index(max(lst))
min_index = lst.index(min(lst))
4. Конкатенация списка строк:
concatenated_string = ''.join(lst)
5. Подсчет вхождений элемента в список:
count = lst.count(item)
6. Переворачиваем строку:
reversed_string = string[::-1]
7. Преобразование строки в список символов:
char_list = list(string)
8. Сортировка списка в порядке убывания:
sorted_list = sorted(lst, reverse=True)
9. Удаление дубликатов из списка:
unique_list = list(set(lst))
10. Вычислить сумму списка чисел:
total = sum(lst)
11. Проверить, все ли элементы списка удовлетворяют условию:
all_true = all(item > 0 for item in lst)
12. Проверьте, удовлетворяет ли условию любой элемент списка:
any_true = any(item > 0 for item in lst)
13. Фильтр списка на основе условия
filtered_list = [item for item in lst if condition]
14. Получение последнего элемента списка:
element_counts = {item: lst.count(item) for item in set(lst)}
15. Получение уникальных элементов и их количества в списке:
element_counts = {item: lst.count(item) for item in set(lst)}
16. Сжимаем вложенный список:
flattened_list = [item for sublist in nested_list for item in sublist]
```
17. Найдите факториал числа:
factorial = 1 if num == 0 else num * factorial(num - 1)
18. Проверить, является ли строка палиндромом:
is_palindrome = string == string[::-1]
```
19. Преобразование списка в строку, разделенную запятым:
csv_string = ','.join(map(str, lst))
20. Получение расширения файла
file_extension = os.path.splitext(filename)[1]
@pro_python_code
1. Python itertools groupby удобный способ группировки - https://www.youtube.com/watch?v=Rt1gl4fM62k
2. Полезные приемы в Pandas - https://www.youtube.com/watch?v=Sd2S5rXe8sY&t=165s
3. Раскройте потенциал Python Numpy: руководство для начинающих в науке о данных - https://www.youtube.com/watch?v=XX2XremQ0fg&t=12s
4. Data science c Python.Ускоряем Pandas в 120 раз- https://www.youtube.com/watch?v=-dAdaEv23vk&t=4s
5. 26 практических приёмов и хитростей Python - https://www.youtube.com/watch?v=vAMyfvtxxdQ&t=5s
6. 5 декораторов Python для Data Science проектов - https://www.youtube.com/watch?v=rxq11WHAlqU
7. ChatGPT + Midjouney на практике - https://www.youtube.com/watch?v=2gUqbc3Ikmo&t=5s
8. Разбор вопросов с собеседований Python - https://www.youtube.com/watch?v=4L1e-A3AOL4&t=5s
9. 15 полезных лайфхаков с кодом Машинного обучения на Python - https://www.youtube.com/watch?v=loOtlwcdiBA&t=4s
10. Декораторы Python, которые выведут ваш код на новый уровень - https://www.youtube.com/watch?v=qxrGAogl4iM
11. 7 инструментов Python, который должен знать каждый специалист машинного обучения - https://www.youtube.com/watch?v=RGEftBi0C9Y
12. Как загружать данные в SQL в 20 раз быстрее на Python - https://www.youtube.com/watch?v=eyeR1uWLnpM&t=2s
13. Data Science. Полезные советы по библиотеке Pandas - https://www.youtube.com/watch?v=neXc5Q-AWXY&t=3s
14. Data Science. Полезные советы по библиотеке Pandas - https://www.youtube.com/watch?v=neXc5Q-AWXY&t=3s
15. Дзен Python ООП: лучшие практики и шаблоны проектирования Python - https://www.youtube.com/watch?v=_MtX6QFJBRU
16. Python itertools. Хитрый способ избежать вложенных циклов - https://www.youtube.com/watch?v=TSvjYKIY01I&t=3s
17. Python. Генерация списка, словаря или множества в одну строку кода - https://www.youtube.com/watch?v=zS3HePvtxVc&t=10s
18. 8 крутых способов свести функции Python в одну строку - https://www.youtube.com/watch?v=jo3Q-rMggXk
19. Python itertools.compress. Удобный способ фильтрации данных - https://www.youtube.com/watch?v=8JGHID-_ApU&t=12s
20. Python Match/Case - https://www.youtube.com/watch?v=U_-NIKbKakM
21. Data Science. Советы по написанию эффективного кода на Python - https://www.youtube.com/watch?v=1Mcy-uatp_c&t=14s
22. Numpy векторизация вместо циклов в Python - https://www.youtube.com/watch?v=c7ypD2xet0E
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖨Как построить сканер SQL-инъекций на Python
SQL-инъекция – это техника инъекции кода, которая используется для выполнения SQL-запросов через данные, вводимые пользователем в уязвимое веб-приложение. Это одна из самых распространенных и опасных техник взлома веб-приложений.
▪Установим необходимые библиотеки для этого урока:
▪Импортируем необходимые модули:
Мы также инициализировали сессию запросов и установили пользовательский агент.
▪Поскольку SQL-инъекция – это все о пользовательском вводе, нам нужно будет сначала извлечь веб-формы. Нам понадобятся следующие функции:
Функция get_all_forms() использует библиотеку BeautifulSoup для извлечения всех тегов формы из HTML и возвращает их в виде списка Python, а функция get_form_details() получает в качестве аргумента один объект тега формы и разбирает полезную информацию о форме, такую как действие (целевой URL), метод (GET, POST и т.д.) и все атрибуты поля ввода (тип, имя и значение).
▪Далее мы определяем функцию, которая сообщает нам, есть ли на веб-странице ошибки SQL, это будет удобно при проверке на уязвимость SQL-инъекции:
▪Продолжение
@pro_python_code
SQL-инъекция – это техника инъекции кода, которая используется для выполнения SQL-запросов через данные, вводимые пользователем в уязвимое веб-приложение. Это одна из самых распространенных и опасных техник взлома веб-приложений.
▪Установим необходимые библиотеки для этого урока:
pip3 install requests bs4
▪Импортируем необходимые модули:
import requests
from bs4 import BeautifulSoup as bs
from urllib.parse import urljoin
from pprint import pprint
# initialize an HTTP session & set the browser
s = requests.Session()
s.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"
Мы также инициализировали сессию запросов и установили пользовательский агент.
▪Поскольку SQL-инъекция – это все о пользовательском вводе, нам нужно будет сначала извлечь веб-формы. Нам понадобятся следующие функции:
def get_all_forms(url):
"""Given a `url`, it returns all forms from the HTML content"""
soup = bs(s.get(url).content, "html.parser")
return soup.find_all("form")
def get_form_details(form):
"""
This function extracts all possible useful information about an HTML `form`
"""
details = {}
# get the form action (target url)
try:
action = form.attrs.get("action").lower()
except:
action = None
# get the form method (POST, GET, etc.)
method = form.attrs.get("method", "get").lower()
# get all the input details such as type and name
inputs = []
for input_tag in form.find_all("input"):
input_type = input_tag.attrs.get("type", "text")
input_name = input_tag.attrs.get("name")
input_value = input_tag.attrs.get("value", "")
inputs.append({"type": input_type, "name": input_name, "value": input_value})
# put everything to the resulting dictionary
details["action"] = action
details["method"] = method
details["inputs"] = inputs
return details
Функция get_all_forms() использует библиотеку BeautifulSoup для извлечения всех тегов формы из HTML и возвращает их в виде списка Python, а функция get_form_details() получает в качестве аргумента один объект тега формы и разбирает полезную информацию о форме, такую как действие (целевой URL), метод (GET, POST и т.д.) и все атрибуты поля ввода (тип, имя и значение).
▪Далее мы определяем функцию, которая сообщает нам, есть ли на веб-странице ошибки SQL, это будет удобно при проверке на уязвимость SQL-инъекции:
▪Продолжение
@pro_python_code
Как ускорить ваш код на Python
Python — это универсальный язык программирования, который широко используется в различных областях, таких как веб-разработка, анализ данных, машинное обучение и искусственный интеллект.
Одной из основных причин его популярности является простота и удобочитаемость, что облегчает разработчикам написание и понимание кода. Однако одним из недостатков Python является его производительность, которая относительно ниже по сравнению с другими языками программирования, такими как C или Java. Поэтому очень важно писать эффективный код для обеспечения оптимальной производительности.
В этой статье мы рассмотрим некоторые советы и рекомендации о том, как писать более качественный и эффективный код на Python. Эти методы могут помочь вам оптимизировать код, сократить время его выполнения и улучшить его общее состояние. Давайте начинать!
Читать
@pro_python_code
Python — это универсальный язык программирования, который широко используется в различных областях, таких как веб-разработка, анализ данных, машинное обучение и искусственный интеллект.
Одной из основных причин его популярности является простота и удобочитаемость, что облегчает разработчикам написание и понимание кода. Однако одним из недостатков Python является его производительность, которая относительно ниже по сравнению с другими языками программирования, такими как C или Java. Поэтому очень важно писать эффективный код для обеспечения оптимальной производительности.
В этой статье мы рассмотрим некоторые советы и рекомендации о том, как писать более качественный и эффективный код на Python. Эти методы могут помочь вам оптимизировать код, сократить время его выполнения и улучшить его общее состояние. Давайте начинать!
Читать
@pro_python_code
10 проектов Python для оттачивания навыков
Python, универсальный и широко используемый язык программирования, предоставляет разработчикам уникальное сочетание мощности и простоты. В этой статье мы рассмотрим десять программ Python, которые демонстрируют возможности языка и то, как Python упрощает написание кода сложных задач.
▪ Читать
@pro_python_code
Python, универсальный и широко используемый язык программирования, предоставляет разработчикам уникальное сочетание мощности и простоты. В этой статье мы рассмотрим десять программ Python, которые демонстрируют возможности языка и то, как Python упрощает написание кода сложных задач.
▪ Читать
@pro_python_code
🗣Создаем проект по распознаванию речи в Python
Распознавание речи – это технология, позволяющая преобразовывать человеческую речь в цифровой текст. В этом руководстве вы узнаете, как выполнить автоматическое распознавание речи с помощью Python.
В этом практическом руководстве, вы научитесь использовать:
▪Библиотека SpeechRecognition: Эта библиотека содержит несколько движков и API, как онлайн, так и офлайн. Мы будем использовать Google Speech Recognition, так как он быстрее запускается и не требует ключа API. У нас есть отдельный учебник по этому вопросу.
▪API Whisper: Whisper – это надежная модель распознавания речи общего назначения, выпущенная OpenAI. API стал доступен 1 марта 2023 года. Мы будем использовать API OpenAI для распознавания речи.
▪Работать с Whisper, которая имеет открытый исходный код. Поэтому мы можем напрямую использовать наши вычислительные ресурсы для выполнения ASR. У нас будет гибкость и возможность выбора, какой размер модели Whisper использовать.
📌 Читать
@pro_python_code
Распознавание речи – это технология, позволяющая преобразовывать человеческую речь в цифровой текст. В этом руководстве вы узнаете, как выполнить автоматическое распознавание речи с помощью Python.
В этом практическом руководстве, вы научитесь использовать:
▪Библиотека SpeechRecognition: Эта библиотека содержит несколько движков и API, как онлайн, так и офлайн. Мы будем использовать Google Speech Recognition, так как он быстрее запускается и не требует ключа API. У нас есть отдельный учебник по этому вопросу.
▪API Whisper: Whisper – это надежная модель распознавания речи общего назначения, выпущенная OpenAI. API стал доступен 1 марта 2023 года. Мы будем использовать API OpenAI для распознавания речи.
▪Работать с Whisper, которая имеет открытый исходный код. Поэтому мы можем напрямую использовать наши вычислительные ресурсы для выполнения ASR. У нас будет гибкость и возможность выбора, какой размер модели Whisper использовать.
📌 Читать
@pro_python_code