This media is not supported in your browser
VIEW IN TELEGRAM
🧰X-OSINT: инструмент OSINT “все в одном”.
X-OSINT представляет собой систему разведки с открытым исходным кодом (OSINT), служащую ценным инструментом для сбора точной информации о телефонных номерах и адресах электронной почты пользователей.
Требования и процесс установки
🟢 Python 3
🟢 модуль pip
🟢 Стабильное подключение к Интернету
🟢 Различные пакеты python (будут установлены автоматически в процессе установки)
Процесс установки
1) Клонирование репозитория инструментов выполняется следующим образом
git clone https://github.com/TermuxHackz/X-osint/tree/master
2) После клонирования репозитория перейдите в только что клонированный каталог и измените права доступа, предоставив полный доступ к инструменту.
3) После этого приступайте к запуску скрипта.
cd X-osint
chmod +x *
bash setup.sh
4) После выполнения скрипта он предложит выбрать один из двух терминалов для установки различных других пакетов. (Для данного примера выбран Linux)
▪Продолжение
▪Github
@pro_python_code
X-OSINT представляет собой систему разведки с открытым исходным кодом (OSINT), служащую ценным инструментом для сбора точной информации о телефонных номерах и адресах электронной почты пользователей.
Требования и процесс установки
Процесс установки
1) Клонирование репозитория инструментов выполняется следующим образом
git clone https://github.com/TermuxHackz/X-osint/tree/master
2) После клонирования репозитория перейдите в только что клонированный каталог и измените права доступа, предоставив полный доступ к инструменту.
3) После этого приступайте к запуску скрипта.
cd X-osint
chmod +x *
bash setup.sh
4) После выполнения скрипта он предложит выбрать один из двух терминалов для установки различных других пакетов. (Для данного примера выбран Linux)
▪Продолжение
▪Github
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Секрет 1. ELSE в циклах FOR и WHILE
Когда мы начинаем программировать, одним из первых знакомств являются условные операторы (if-else). Они позволяют изменять поток кода в зависимости от значения определенной переменной. В блоке if проверяется логическое условие, и если оно не выполняется, выполняется код, определенный в блоке else.
Это может быть полезно, например, если у нас есть список чисел и мы хотим написать логику, которая определяет, является ли любое из чисел в списке четным:
# определяем список чисел
numbers: list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# также определяем переменную-флаг, которая укажет, было ли найдено четное число
found_even: bool = False
for num in numbers:
# если остаток после деления на 2 равен 0, то число четное
if num % 2 == 0:
print(f"{num} is even")
# устанавливаем флаг в True, потому что нашли четное число
found_even = True
# мы можем остановить выполнение, потому что нашли четное число
break
# если значение флага False, то четных чисел не найдено
if not found_even:
print("No even numbers found")
Вышеприведенное можно записать следующим образом:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
print(f"{num} is even")
break
else:
print("No even numbers found")
Секрет 2. Оператор walrus
Рассмотрим следующий пример. Нам необходимо реализовать логику, которая генерирует последовательность случайных чисел до тех пор, пока не будет сгенерировано определенное число.
import random
rand = None
while True:
# генерация случайного числа от 1 до 100
rand = random.randint(1, 100)
# если случайное число равно 10, прервать выполнение
if rand != 10:
print(rand)
else:
break
# это будет выполнено только в том случае, если мы получим 10 и прервем цикл
print("We got a 10!")
Генерируем в цикле случайное число и сохраняем его в переменной rand. Количество итераций зависит от значения переменной rand. Чем быстрее rand станет равным 10, тем быстрее прервем цикл.
import random
while (rand := random.randint(1, 100)) != 10:
print(rand)
print("We got a 10!")
Здесь сообщаем Python, что хотим, чтобы цикл while выполнялся до тех пор, пока значение rand не станет равно 10. Кроме того, сообщаем ему, что rand будет получать свое значение из random.randint(1, 100) с каждой новой итерацией.
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️Выбор правильного фреймворка Python: Django vs. Flask vs. FastAPI vs. AIOHTTP
Сравним четыре популярных веб-фреймворка на Python: Django, Flask, FastAPI и AIOHTTP.
Django: Полнофункциональный веб-фреймворк
Django – это высокоуровневый, полнофункциональный веб-фреймворк, придерживающийся философии “батарейки в комплекте”. Его надежная экосистема и следование принципу “не повторяйся” (DRY) делают его идеальным решением для сложных приложений и масштабных проектов.
Примеры использования
• Системы управления контентом (CMS): встроенный интерфейс администратора и ORM (Object-Relational Mapping) делают Django отличным выбором для создания многофункциональных CMS-платформ.
• Приложения для социальных сетей: Система аутентификации и управление пользователями Django упрощают разработку платформ для социальных сетей.
• Веб-сайты электронной коммерции: Поддержка Django для миграции баз данных и такие функции безопасности, как защита от CSRF и clickjacking, хорошо подходят для приложений электронной коммерции.
Instagram – это платформа для обмена фотографиями, созданная на основе Django. Она продемонстрировала способность работать с большими базами пользователей и сложными функциональными возможностями.
Образец кода
Следующий код определяет простую функцию представления hello_view, которая возвращает JsonResponse при обращении к ней по URL. Чтобы использовать эту функцию в проекте Django, необходимо зарегистрировать URL, как показано во втором блоке кода.
Flask: легкий микрофреймворк
Flask – это микрофреймворк, в котором приоритет отдается простоте и гибкости, а не встроенной функциональности. Это означает, что разработчики могут выбирать инструменты и расширения по мере необходимости, что делает его идеальным для малых и средних проектов.
Примеры использования
• Прототипирование: Минимальный объем кодового кода Flask делает его отличным выбором для быстрого создания прототипов и разработки пробных версий.
• RESTful API: Легкий дизайн Flask и широкая поддержка таких расширений, как Flask-RESTful, позволяют разработчикам создавать эффективные REST API.
• Одностраничные приложения (SPA): Flask может выступать в качестве бэкенда для SPA, используя преимущества своей простоты и легкой интеграции с фреймворками фронтенда.
Pinterest, популярная платформа для поиска контента, использует Flask для эффективной работы с бэкэнд-операциями, демонстрируя способность к масштабированию и оптимизации производительности.
Образец кода
Приведенный ниже код на языке Python является примером веб-приложения, созданного с использованием Flask. В нем создается экземпляр класса Flask и определяется маршрут с именем “hello”. При обращении к маршруту “hello” с помощью GET-запроса приложение возвращает JSON-ответ с парой ключ-значение “message” и “Hello, Flask!”.
📌 Читать про остальные
@pro_python_code
Сравним четыре популярных веб-фреймворка на Python: Django, Flask, FastAPI и AIOHTTP.
Django: Полнофункциональный веб-фреймворк
Django – это высокоуровневый, полнофункциональный веб-фреймворк, придерживающийся философии “батарейки в комплекте”. Его надежная экосистема и следование принципу “не повторяйся” (DRY) делают его идеальным решением для сложных приложений и масштабных проектов.
Примеры использования
• Системы управления контентом (CMS): встроенный интерфейс администратора и ORM (Object-Relational Mapping) делают Django отличным выбором для создания многофункциональных CMS-платформ.
• Приложения для социальных сетей: Система аутентификации и управление пользователями Django упрощают разработку платформ для социальных сетей.
• Веб-сайты электронной коммерции: Поддержка Django для миграции баз данных и такие функции безопасности, как защита от CSRF и clickjacking, хорошо подходят для приложений электронной коммерции.
Instagram – это платформа для обмена фотографиями, созданная на основе Django. Она продемонстрировала способность работать с большими базами пользователей и сложными функциональными возможностями.
Образец кода
Следующий код определяет простую функцию представления hello_view, которая возвращает JsonResponse при обращении к ней по URL. Чтобы использовать эту функцию в проекте Django, необходимо зарегистрировать URL, как показано во втором блоке кода.
# File: views.py
from django.http import JsonResponse
def hello_view(request):
return JsonResponse({"message": "Hello, Django!"})
# File: myproject/urls.py
from django.urls import path
from myapp.views import hello_view
urlpatterns = [
path('hello/', hello_view, name='hello'),
]
Flask: легкий микрофреймворк
Flask – это микрофреймворк, в котором приоритет отдается простоте и гибкости, а не встроенной функциональности. Это означает, что разработчики могут выбирать инструменты и расширения по мере необходимости, что делает его идеальным для малых и средних проектов.
Примеры использования
• Прототипирование: Минимальный объем кодового кода Flask делает его отличным выбором для быстрого создания прототипов и разработки пробных версий.
• RESTful API: Легкий дизайн Flask и широкая поддержка таких расширений, как Flask-RESTful, позволяют разработчикам создавать эффективные REST API.
• Одностраничные приложения (SPA): Flask может выступать в качестве бэкенда для SPA, используя преимущества своей простоты и легкой интеграции с фреймворками фронтенда.
Pinterest, популярная платформа для поиска контента, использует Flask для эффективной работы с бэкэнд-операциями, демонстрируя способность к масштабированию и оптимизации производительности.
Образец кода
Приведенный ниже код на языке Python является примером веб-приложения, созданного с использованием Flask. В нем создается экземпляр класса Flask и определяется маршрут с именем “hello”. При обращении к маршруту “hello” с помощью GET-запроса приложение возвращает JSON-ответ с парой ключ-значение “message” и “Hello, Flask!”.
# File: app.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello', methods=['GET'])
def hello():
return jsonify({"message": "Hello, Flask!"})
📌 Читать про остальные
@pro_python_code
Solara
Не так давно был представлен фреймворк Solara, предназначенный для создания веб-приложений на чистом Python. В его документации содержатся интересные улучшения Streamlit. К ним относятся вложенные переиспользуемые компоненты с собственными состояниями, не требующие повторного выполнения без необходимости, а также простая интеграция с Jupyter Notebook.
Протестируем данный фреймворк.
• Для этого создадим что-нибудь одновременно простое, но при этом достаточно сложное, чтобы проверить его возможности, а именно приложение-планировщик задач todo app. Я уже проводил подобный эксперимент с Shiny для Python, теперь настала очередь Solara. *В изображении итог.
Написание кода в Solara
Во-первых, фреймворк является совершенно новым, и сложно предсказать возможные изменения по мере его развития. Кроме того, я не претендую на звание эксперта Solara.
Начнем с определения глобальных переменных:
import solara
text_input = solara.reactive("")
todos = solara.reactive([
{ "text": solara.reactive("Learn Solara"), "done": solara.reactive(False) },
{ "text": solara.reactive("Build a Solara app"), "done": solara.reactive(False) }
])
Page()
Затем определяем основной компонент с именем Page:
@solara.component
def Page():
# добавление css
solara.Style("""
.add-button {
margin-right: 10px;
}
""")
# центрирование карты
with solara.Column(align="center"):
with solara.Card(title="Todo App"):
for todo in todos.value:
Todo(todo)
if len(todos.value) == 0:
solara.Text("No todos yet.")
solara.InputText(label="Add a todo", value=text_input),
solara.Button("Add", on_click=on_add_todo, classes=["primary", "add-button"]),
solara.Button("Remove finished tasks", classes=["secondary"], on_click=clear_finished_todos),
Page()
Рассмотрим код шаг за шагом.
Читать
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучший способ получать свежие обновлении и следить за трендами в разработке.
Машинное обучение: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Тестирование: https://yangx.top/+F9jPLmMFqq1kNTMy
Java: t.me/javatg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка машинное обучение: https://yangx.top/addlist/_FjtIq8qMhU0NTYy
🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Сборщик поддоменов, написанный на python. Этот инструмент можно эффективно использовать для сбора информации о домене, не посылая ни одного пакета ни на один из узлов сайта.
git clone https://github.com/gnebbia/pdlist
cd pdlist
pip install -r requirements.txt
python setup.py install
▪Github
#infosec #pentesting #bugbounty
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
https://www.youtube.com/watch?v=3Glmlpe3dsg
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Скрытая функция 1: List Stepping
Эта функция помогает выбирать с необходимым шаговым интервалом элементы из списка. Синтаксис здесь такой:
list[start:end:step]
• start: индекс первого контролируемого элемента в списке;
• end: индекс первого элемента вне зоны контроля;
• step: шаг сортировки.
Предположим, есть список с числами от 0 до 9, необходимо выбрать только четные числа. Сделать это можно так:
my_list: list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers: list = my_list[::2] # [0, 2, 4, 6, 8]
Здесь мы не указываем начальный и конечный индексы. Поэтому Python считает стартовым первый элемент, а конечным — последний (т. е. весь список). Затем указываем шаг — 2. Поэтому Python начнет с первого элемента и вернет его (т. е. 0). Затем переместится на 2 шага (перейдет к 1, а затем к 2) и вернет результат (т. е. 2). Этот процесс повторяется до конца списка.
☝️Еще один мощный трюк с пошаговым списком — инвертированный список через отрицательную индексацию.
my_list: list = [1, 2, 3, 4, 5]
reversed_list: list = my_list[::-1] # [5, 4, 3, 2, 1]
Скрытая функция 2: связывание операторов сравнения
В программировании часто приходится выполнять множественные сравнения как часть логического потока.
Предположим, есть переменная x, и мы хотим убедиться, что x больше 1, но меньше 10. Обычно делают что-то вроде:
x: int = 5
condition1: bool = x > 1 # проверить, что х больше 1
condition2: bool = x < 10 # проверить, что х меньше 10
print(condition1 and condition2) # True
Python позволяет объединить сравнения:
x: int = 5
print(1 < x < 10) # True
print(10 < x < 20) # False
Также можно сделать что-то вроде:
x: int = 5
print(5 == x > 4) # True
print(x < 10 < x*10 < 100) # True
Скрытая функция 3: комплексные/мнимые числа
Всем, кто изучал математику, знакомо понятие комплексных чисел. Интересная особенность Python, о которой многие не подозревают, заключается в том, что он полностью поддерживает комплексные числа.
В математике для представления комплексного числа обычно используют символ i. В Python мы используем j или вызываем функцию complex().
# Создание комплексных чисел
z1 = 2 + 3j
z2 = complex(4, -2) # (4 -2j)
# Доступ к действительным и мнимым частям
print(z1.real) # 2.0
print(z1.imag) # 3.0
# Арифметика с комплексными числа
z3 = z1 + z2 # (6+1j)
z4 = z1 * z2 # (14+8j)
z5 = z1 / z2 # (0.1+0.8j)
# Сопряжение комплексного числа
z6 = z1.conjugate() # (2-3j)
Скрытая функция 4: доступ к последнему результату по символу “_”
Возможно, вы замечали, что многие программисты резервируют символ _ в качестве заполнителя некоторых переменных, которые не используются или не нужны в процессе выполнения программы.
Между тем (и многие об этом не знают), по умолчанию Python присваивает результат последнего выполнения переменной этому символу _.
x: int = 5
y: int = 99
x + y # 104
print(_) # 104
Скрытая функция 5: распаковка аргумента
Предположим, есть некоторая произвольная функция:
def my_sum(a, b, c):
return a + b + c
Есть список из 3 чисел, которые нужно передать функции. Обычно пишут:
my_list = [1, 2, 3]
result = my_sum(my_list[0], my_list[1], my_list[2])
print(result) # 6
Вместо этого в Python можно сделать так:
result = my_sum(*my_list)
print(result) # 6
Символ * распаковывает весь список и передает каждый элемент в качестве параметра функции. Далее также можно распаковать словарь с помощью **.
# Пример распаковки аргумента словаря
def my_func(a, b, c):
print(f"a={a}, b={b}, c={c}")
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_func(**my_dict)
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Как стать инженером Python в 2023 году
Требования к младшему Python-инженеру
Вот общие требования, которые сегодня часто указывают в вакансиях для Python-инженеров.
1. Степень бакалавра в области компьютерных наук или смежной сфере.
2. 1–2 года опыта работы с Python и соответствующими библиотеками (такими как Django и Flask).
3. Знание технологий веб-разработки (HTML, CSS, JavaScript и т. д.).
4. Знание баз данных (SQL, MySQL, MongoDB и т. д.).
5. Владение ведущими практиками разработки программного обеспечения (контроль версий, тестирование, отладка и т. д.).
6. Высокий уровень навыков решения задач и критического мышления.
7. Умение работать в команде.
8. Развитые навыки письменной и устной коммуникации.
Обсудим подробно самые важные требования.
Глубокое знание Python
Конечно, вы должны освоить Python. Но вопрос в том, насколько глубоко? Когда-то было достаточно изучить основные понятия и, возможно, один фреймворк, но все изменилось — теперь важно знать язык досконально.
К примеру, вы должны быть готовы ответить на подобные вопросы:
• На какой структуре данных основаны словари Python?
• Как в Python решается проблема ромба?
• В каком порядке будут выполняться несколько декораторов, примененные к одной функции?
Вам следует знать Python как свои пять пальцев.
Но дело не только в написании кода, а в написании оптимизированного кода. Вы должны профессионально оперировать генераторами списков и словарей, декораторами, прочими генераторами и т.д. Не забудьте и об алгоритмах — можете потренироваться на задачах Leetcode, чтобы отточить свои навыки.
📌 Продолжение
@pro_python_code
Требования к младшему Python-инженеру
Вот общие требования, которые сегодня часто указывают в вакансиях для Python-инженеров.
1. Степень бакалавра в области компьютерных наук или смежной сфере.
2. 1–2 года опыта работы с Python и соответствующими библиотеками (такими как Django и Flask).
3. Знание технологий веб-разработки (HTML, CSS, JavaScript и т. д.).
4. Знание баз данных (SQL, MySQL, MongoDB и т. д.).
5. Владение ведущими практиками разработки программного обеспечения (контроль версий, тестирование, отладка и т. д.).
6. Высокий уровень навыков решения задач и критического мышления.
7. Умение работать в команде.
8. Развитые навыки письменной и устной коммуникации.
Обсудим подробно самые важные требования.
Глубокое знание Python
Конечно, вы должны освоить Python. Но вопрос в том, насколько глубоко? Когда-то было достаточно изучить основные понятия и, возможно, один фреймворк, но все изменилось — теперь важно знать язык досконально.
К примеру, вы должны быть готовы ответить на подобные вопросы:
• На какой структуре данных основаны словари Python?
• Как в Python решается проблема ромба?
• В каком порядке будут выполняться несколько декораторов, примененные к одной функции?
Вам следует знать Python как свои пять пальцев.
Но дело не только в написании кода, а в написании оптимизированного кода. Вы должны профессионально оперировать генераторами списков и словарей, декораторами, прочими генераторами и т.д. Не забудьте и об алгоритмах — можете потренироваться на задачах Leetcode, чтобы отточить свои навыки.
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡 This week's digest of useful content from the world of Python
Дайджест полезных материалов из мира Python за неделю.
Почитать:
— Разработка событийно-ориентированных микросервисов с помощью Python
— Бережем время, деньги, нервы: наш опыт улучшения справочника факторов для ML-моделей оценки риска. Часть 2
— Я люблю питон, и вот почему он меня бесит
— Список популярных утечек с GitHub: Анализ репозиториев компаний
— PyCon Russia 2023. Зона Python. Краткий обзор докладов
— Менеджеры контекста в Python
— Что происходит, когда запускаешь «Hello World» в Linux
— Ускорение кода с помощью многопроцессорной обработки в Python
— Руководство по созданию бота YouTube с помощью LangChain и Pinecone Vectorstore
— Перехват FTP-пароля с помощью Python
— Как Python использует сборку мусора для эффективного управления памятью
— Converting An Image File Into PDF Using Python
— Introducing Kids to Coding Through Tkinter: A Fun Path to Python's Graphical User Interfaces
Посмотреть:
🌐Как работать с декораторами в Python. Часть 1
🌐 Методы сокращения и улучшения кода на Python
🌐 Продвинутые методы улучшения кода на Python
🌐 Создаем продвинутый интерфейс на Python
🌐 Harvard CS50’s Artificial Intelligence with Python – Full University Course
Хорошего дня!
@pro_python_code
Дайджест полезных материалов из мира Python за неделю.
Почитать:
— Разработка событийно-ориентированных микросервисов с помощью Python
— Бережем время, деньги, нервы: наш опыт улучшения справочника факторов для ML-моделей оценки риска. Часть 2
— Я люблю питон, и вот почему он меня бесит
— Список популярных утечек с GitHub: Анализ репозиториев компаний
— PyCon Russia 2023. Зона Python. Краткий обзор докладов
— Менеджеры контекста в Python
— Что происходит, когда запускаешь «Hello World» в Linux
— Ускорение кода с помощью многопроцессорной обработки в Python
— Руководство по созданию бота YouTube с помощью LangChain и Pinecone Vectorstore
— Перехват FTP-пароля с помощью Python
— Как Python использует сборку мусора для эффективного управления памятью
— Converting An Image File Into PDF Using Python
— Introducing Kids to Coding Through Tkinter: A Fun Path to Python's Graphical User Interfaces
Посмотреть:
🌐Как работать с декораторами в Python. Часть 1
🌐 Методы сокращения и улучшения кода на Python
🌐 Продвинутые методы улучшения кода на Python
🌐 Создаем продвинутый интерфейс на Python
🌐 Harvard CS50’s Artificial Intelligence with Python – Full University Course
Хорошего дня!
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое itertools?
Itertools — это Python-модуль, который предоставляет набор функций для работы с итерируемыми объектами. Итерируемый объект — это любой объект, предоставляющий возможность пройти по своим элементам, например список, кортеж и словарь. Itertools позволяет выполнять стандартные операции с итерируемыми объектами, такие как фильтрация, группировка и объединение.
Модуль Itertools предоставляет несколько функций, позволяющих манипулировать итерируемыми объектами. Рассмотрим подробнее наиболее полезные функции itertools.
1. permutations(): эта функция возвращает все возможные перестановки итерируемого объекта с уникальным расположением элементов в итераторе.
Ввод:
import itertools
letters = ['a', 'b', 'c']
perms = itertools.permutations(letters)
for perm in perms:
print(perm)
Вывод:
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
2. combinations(): эта функция возвращает все возможные комбинации элементов в итерируемом объекте, не повторяя в итераторе ни одной из комбинаций. Если указан опциональный аргумент r, будут возвращены только комбинации длины r.Ввод:
import itertools
numbers = [1, 2, 3, 4]
combs = itertools.combinations(numbers, 2)
for comb in combs:
print(comb)
Вывод:
(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
3. product(): эта функция возвращает декартово произведение итерируемых объектов. Получаемый итератор содержит кортежи, каждый из которых формируется путем отбора по одному элементу из каждого итерируемого объекта. Если указан опциональный аргумент repeat, то входные итерируемые объекты повторяются указанное количество раз.
Ввод:
import itertools
colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']
combos = itertools.product(colors, sizes)
for combo in combos:
print(combo)
Вывод:('red', 'small')
('red', 'medium')
('red', 'large')
('green', 'small')
('green', 'medium')
('green', 'large')
('blue', 'small')
('blue', 'medium')
('blue', 'large')
4. groupby(): эта функция группирует элементы в конкретном итерируемом объекте на основе значения, возвращаемого функцией key. Получаемый в результате итератор содержит кортежи, в каждом из которых первый элемент — ключ группировки, а второй — итератор по элементам в группе.
Ввод:
import itertools
fruits = [{'name': 'apple', 'color': 'red'},
{'name': 'banana', 'color': 'yellow'},
{'name': 'orange', 'color': 'orange'},
{'name': 'pear', 'color': 'green'},
{'name': 'strawberry', 'color': 'red'}]
fruits.sort(key=lambda x: x['color'])
for color, group in itertools.groupby(fruits, lambda x: x['color']):
print(color)
for fruit in group:
print(fruit['name'])
Вывод:
green
pear
orange
orange
red
apple
strawberry
yellow
banana
5. chain(): эта функция объединяет указанные итерируемые объекты в один итерируемый объект. Она возвращает итератор, в котором последовательно выполняется перебор элементов каждого итерируемого объекта.
Ввод:
import itertools
colors = ['red', 'green', 'blue']
sizes = ['small', 'medium', 'large']
for item in itertools.chain(colors, sizes):
print(item)
Вывод:
red
green
blue
small
medium
large
6. count(): эта функция возвращает итератор, который производит бесконечную последовательность чисел, начиная с заданного начального значения и увеличивая на заданное значение шага.Ввод:
import itertools
for i in itertools.count(5, 2):
print(i)
if i > 15:
break
Вывод:
5
7
9
11
13
15
17
7. cycle(): эта функция возвращает итератор, который производит элементы конкретного итерируемого объекта многократно и бесконечно.
Ввод:
import itertools
colors = ['red', 'green', 'blue']
for color in itertools.cycle(colors):
print(color)
Вывод:red
green
blue
red
green
blue
red
...
8. dropwhile(): эта функция возвращает итератор, который производит элементы конкретного итерируемого объекта после того, как функция-предикат в первый раз вернет False.
📌Читать дальше
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Универсальный рецепт по написанию и аннотированию декораторов Python.
https://www.youtube.com/watch?v=2n2zdpr1F-I
@pro_python_code
https://www.youtube.com/watch?v=2n2zdpr1F-I
@pro_python_code
С помощью pyserde можно легко сериализовать и десериализовать объекты класса данных.
Сериализация преобразует данные класса данных в сериализованный формат для удобства хранения и передачи.
Десериализация восстанавливает объект класса данных из сериализованных данных.
▪Github
▪Docs
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Анализ данных для задач НЛП
• Для успешного NLP-проекта одним из важнейших этапов является предварительная обработка данных. В этой статье мы рассмотрим все шаги, связанные с анализом данных для любой задачи НЛП.
• Для анализа данных мы можем использовать статистические методы, вычислительные алгоритмы, чтобы обработать данные и повысить производительность модели. Шаги, описанные в этом посте, могут быть использованы для анализа данных для любой задачи НЛП.
Настройка среды
▪Первым шагом любого проекта является настройка среды, т.е. установка важных пакетов и импорт важных библиотек.
Обзор данных
▪Следующим этапом проекта будет загрузка датасета. В данном случае мы будем использовать набор данных твитов о катастрофах из Kaggle.
▪Мы можем загрузить наш датасет с помощью библиотеки pandas.
▪Для того чтобы получить общее представление о данных, мы можем просмотреть верхние строки набора данных с помощью функции head в pandas:
Для анализа столбца ключевых слов мы используем библиотеку seaborn, которая позволяет визуализировать распределение ключевых слов и их корреляцию с целью.
📌 Продолжение
@pro_python_code
• Для успешного NLP-проекта одним из важнейших этапов является предварительная обработка данных. В этой статье мы рассмотрим все шаги, связанные с анализом данных для любой задачи НЛП.
• Для анализа данных мы можем использовать статистические методы, вычислительные алгоритмы, чтобы обработать данные и повысить производительность модели. Шаги, описанные в этом посте, могут быть использованы для анализа данных для любой задачи НЛП.
Настройка среды
▪Первым шагом любого проекта является настройка среды, т.е. установка важных пакетов и импорт важных библиотек.
!pip install nltk
!pip install pandas
import pandas as pd
import nltk
from nltk.tokenize import sent_tokenize,word_tokenize
from nltk.stem import PorterStemmer
from nltk.corpus import stopwords
import re
Обзор данных
▪Следующим этапом проекта будет загрузка датасета. В данном случае мы будем использовать набор данных твитов о катастрофах из Kaggle.
▪Мы можем загрузить наш датасет с помощью библиотеки pandas.
df = pd.read_csv("/train.csv")
▪Для того чтобы получить общее представление о данных, мы можем просмотреть верхние строки набора данных с помощью функции head в pandas:
df.head(10)
Для анализа столбца ключевых слов мы используем библиотеку seaborn, которая позволяет визуализировать распределение ключевых слов и их корреляцию с целью.
plt.figure(figsize=(10,70))
sns.countplot(data=df,y="keyword",hue="target",saturation=0.50)
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)
plt.show()
📌 Продолжение
@pro_python_code
🐍 Python 3.13.0a0 Что нового?
Захватывающие возможности
В настоящее время Python 3.13.0a0 находится в стадии разработки и содержит ряд новых возможностей и улучшений. В этой статье мы рассмотрим некоторые из новых возможностей Python 3.13.0a0 и приведем несколько примеров кода для начала работы.
Самой последней версией является 3.11.4, а 3.12 находится в стадии раннего предварительного просмотра. Вы можете лучше понять Python 3.13.0a0, прочитав эти статьи о Python 3.11.4 и Python 3.12.
Новые возможности
Новых модулей пока нет, но есть несколько улучшенных модулей: array, io, pathlib, traceback, typing.
• массив: Код типа ‘w’ можно использовать для строк Unicode.
• io: метод close() финализатора theio.IOBase теперь регистрирует ошибки с помощью sys.unraisablehook.
• pathlib: Добавлены изменения в pathlib.PurePath.match(), pathlib.Path.glob() и rglob().
• tracebackВ traceback.TracebackException.format_exception_only() добавлен параметр show_group.
• typing: typing.get_protocol_members() был добавлен набор членов, определяющих typing.Protocol. typing.is_protocol() был добавлен для проверки того, является ли класс typing.Protocol.
Оптимизация производительности
Из программы PEP 594:
Утраченные функции:
1. Утрата методов wave.Wave_read и wave.Wave_write
2. Устранение аргументов ключевых слов при создании классов typing.NamedTuple
3. Устранение использования функционального синтаксиса при создании классов typing.NamedTuple и typing.TypedDict
4. Утрата кода формата массива ‘u’.
5. Утрата функций ctypes.SetPointerType() и ctypes.ARRAY()
Удаленные функции
1. Удаление модуля telnetlib.
2. Удаление программы 2to3 и модуля lib2to3.
3. Удаление пространств имен typing.io и typing.re.
4. Удаление класса webbrowser MacOSX
5. Удаление поддержки использования объекта pathlib.Path в качестве менеджера контекста
6. Удаление класса configparser.LegacyINterpolation.
7. Удаление метода turtle.RowTurtle.settiltangle().
8. Удаление некоторых функций unittest
9. Удаление модулей cgi и cgitb
10. Удалены различные модули и пакеты, такие как sndhdr, pipes, ossaudiodev, mailcap, spwd, nntplib, nis, xdrlib, msilib, crypt, uu, aifc, audioop, chunk, imghdr, unittest.TestProgram.usageExit(), tkinter. tix, макросы trashcan, locale.resetlocale(), logging.Logger.warn(), параметры urllib.request.urlopen(), атрибут webbrowser.MacOSXOSAScript._name, функция re.template и флаг re.TEMPLATE
Изменения в API на языке C
Утратил актуальность:
Утратили свою актуальность старые функции инициализации Python, такие как
PySys_ResetWarnOptions()
PY_NAME_GetExecPrefix()
Py_GetPath()
Py_GetPrefix()
Py_GetProgramFullPath()
Py_GetProgramName()
Py_GetPythonHome()
Утратила актуальность функция Py_ImportModuleNoBlock(), удаление которой запланировано в Python 3.15. Удалены:
Удалено:
Удалены функции, устаревшие в Python 3.9, такие как PyEval_CallObject(), PyEval_CallObjectWithKeywords(), PyEval_CallFunction(), PyEval_CallMethod() иPyEval_CFunction_Call().
Следующие старые функции для настройки инициализации Python, устаревшие в Python 3.11, были удалены:
• PySys_AddWarnOptionUnicode(): Вместо этого используйте PyConfig.warnoptions.
• PySys_AddWarnOption(): Вместо этого используйте PyConfig.warnoptions.
• PySys_AddXOption(): Использовать PyConfig.xoptions.
• PySys_HasWarnOptions(): Вместо этого используйте PyConfig.xoptions.
• PySys_SetArgvEx(): Вместо этого установите PyConfig.argv.
• PySys_SetArgv(): Установить вместо PyConfig.argv.
• PySys_SetPath(): Установить вместо PyConfig.module_search_paths.
• Py_SetPath(): Вместо этого установить PyConfig.module_search_paths.
• Py_SetProgramName(): Вместо этого установить PyConfig.program_name.
• Py_SetPythonHome(): Вместо этого установить PyConfig.home.
• Py_SetStandardStreamEncoding(): Установить вместо PyConfig.stdio_encoding.
• _Py_SetProgramFullPath(): Установить вместо PyConfig.executable.
@pro_python_code
Захватывающие возможности
В настоящее время Python 3.13.0a0 находится в стадии разработки и содержит ряд новых возможностей и улучшений. В этой статье мы рассмотрим некоторые из новых возможностей Python 3.13.0a0 и приведем несколько примеров кода для начала работы.
Самой последней версией является 3.11.4, а 3.12 находится в стадии раннего предварительного просмотра. Вы можете лучше понять Python 3.13.0a0, прочитав эти статьи о Python 3.11.4 и Python 3.12.
Новые возможности
Новых модулей пока нет, но есть несколько улучшенных модулей: array, io, pathlib, traceback, typing.
• массив: Код типа ‘w’ можно использовать для строк Unicode.
• io: метод close() финализатора theio.IOBase теперь регистрирует ошибки с помощью sys.unraisablehook.
• pathlib: Добавлены изменения в pathlib.PurePath.match(), pathlib.Path.glob() и rglob().
• tracebackВ traceback.TracebackException.format_exception_only() добавлен параметр show_group.
• typing: typing.get_protocol_members() был добавлен набор членов, определяющих typing.Protocol. typing.is_protocol() был добавлен для проверки того, является ли класс typing.Protocol.
Оптимизация производительности
Из программы PEP 594:
Утраченные функции:
1. Утрата методов wave.Wave_read и wave.Wave_write
2. Устранение аргументов ключевых слов при создании классов typing.NamedTuple
3. Устранение использования функционального синтаксиса при создании классов typing.NamedTuple и typing.TypedDict
4. Утрата кода формата массива ‘u’.
5. Утрата функций ctypes.SetPointerType() и ctypes.ARRAY()
Удаленные функции
1. Удаление модуля telnetlib.
2. Удаление программы 2to3 и модуля lib2to3.
3. Удаление пространств имен typing.io и typing.re.
4. Удаление класса webbrowser MacOSX
5. Удаление поддержки использования объекта pathlib.Path в качестве менеджера контекста
6. Удаление класса configparser.LegacyINterpolation.
7. Удаление метода turtle.RowTurtle.settiltangle().
8. Удаление некоторых функций unittest
9. Удаление модулей cgi и cgitb
10. Удалены различные модули и пакеты, такие как sndhdr, pipes, ossaudiodev, mailcap, spwd, nntplib, nis, xdrlib, msilib, crypt, uu, aifc, audioop, chunk, imghdr, unittest.TestProgram.usageExit(), tkinter. tix, макросы trashcan, locale.resetlocale(), logging.Logger.warn(), параметры urllib.request.urlopen(), атрибут webbrowser.MacOSXOSAScript._name, функция re.template и флаг re.TEMPLATE
Изменения в API на языке C
Утратил актуальность:
Утратили свою актуальность старые функции инициализации Python, такие как
PySys_ResetWarnOptions()
PY_NAME_GetExecPrefix()
Py_GetPath()
Py_GetPrefix()
Py_GetProgramFullPath()
Py_GetProgramName()
Py_GetPythonHome()
Утратила актуальность функция Py_ImportModuleNoBlock(), удаление которой запланировано в Python 3.15. Удалены:
Удалено:
Удалены функции, устаревшие в Python 3.9, такие как PyEval_CallObject(), PyEval_CallObjectWithKeywords(), PyEval_CallFunction(), PyEval_CallMethod() иPyEval_CFunction_Call().
Следующие старые функции для настройки инициализации Python, устаревшие в Python 3.11, были удалены:
• PySys_AddWarnOptionUnicode(): Вместо этого используйте PyConfig.warnoptions.
• PySys_AddWarnOption(): Вместо этого используйте PyConfig.warnoptions.
• PySys_AddXOption(): Использовать PyConfig.xoptions.
• PySys_HasWarnOptions(): Вместо этого используйте PyConfig.xoptions.
• PySys_SetArgvEx(): Вместо этого установите PyConfig.argv.
• PySys_SetArgv(): Установить вместо PyConfig.argv.
• PySys_SetPath(): Установить вместо PyConfig.module_search_paths.
• Py_SetPath(): Вместо этого установить PyConfig.module_search_paths.
• Py_SetProgramName(): Вместо этого установить PyConfig.program_name.
• Py_SetPythonHome(): Вместо этого установить PyConfig.home.
• Py_SetStandardStreamEncoding(): Установить вместо PyConfig.stdio_encoding.
• _Py_SetProgramFullPath(): Установить вместо PyConfig.executable.
@pro_python_code
⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Машинное обучение: @ai_machinelearning_big_data
Go: @Golang_google
C#: @csharp_ci
Базы данных: @sqlhub
Python: @pythonl
C/C++/: @cpluspluc
Data Science: @data_analysis_ml
Devops: @devOPSitsec
Rust: @rust_code
Javascript: @javascriptv
React: @react_tg
PHP: @phpshka
Docker: @docker
Android: @android_its
Мобильная разработка: @mobdevelop
Linux: linuxacademy
Big Data: t.me/bigdatai
Хакинг: @linuxkalii
Java:@javatg
Собеседования: @machinelearning_interview
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
🔥ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: @english_forprogrammers
Машинное обучение: @ai_machinelearning_big_data
Go: @Golang_google
C#: @csharp_ci
Базы данных: @sqlhub
Python: @pythonl
C/C++/: @cpluspluc
Data Science: @data_analysis_ml
Devops: @devOPSitsec
Rust: @rust_code
Javascript: @javascriptv
React: @react_tg
PHP: @phpshka
Docker: @docker
Android: @android_its
Мобильная разработка: @mobdevelop
Linux: linuxacademy
Big Data: t.me/bigdatai
Хакинг: @linuxkalii
Java:@javatg
Собеседования: @machinelearning_interview
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
🔥ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: @english_forprogrammers
🟡 Дайджест полезных материалов из мира :python за неделю
Почитать:
— Стейты, БД и логи — разбираем шаблон диалогового Телеграм бота
— Python 3.13.0 Что нового?
— Как я научил искусственный интеллект создавать барабанные партии
— Расширение возможностей веб-приложений с помощью
WebAssembly и Python
— Советы и рекомендации по работе с Python
— Проектирование и добавление функционала в концепт ForTeаToo (42)
— Простая нейронная сеть без библиотек и матриц. Эволюционный алгоритм
— Прикладное использование теории построения информационно-исторических систем
— Простая нейронная сеть без библиотек и матриц. Обучение с учителем
— Гиперпараметрический поиск и оптимизация моделей
— Теория разработки информационно-исторических систем с реализацией концепта
— Как дообучить LLaMA бесплатно и без программирования: как создать тупого друга
— Introduction to Sets in Python
— How to Add Color to Old Black and White Movies and Images | using DeOldify
— A way to (actually) run Python code in ChatGPT
— What is Machine Learning?
— Webhook and Ansible
— Navigating Databases with Python: A Beginner-Friendly Guide
— Send Automated Emails (smtplib & Python) Through Lambda
— Benefits of hybrid search
— How to change desktop wallpaper in Python
— Generate Html code using python
Посмотреть:
🌐 Универсальный рецепт по написанию и аннотированию декораторов Python.
Хорошего дня!
@pro_python_code
Почитать:
— Стейты, БД и логи — разбираем шаблон диалогового Телеграм бота
— Python 3.13.0 Что нового?
— Как я научил искусственный интеллект создавать барабанные партии
— Расширение возможностей веб-приложений с помощью
WebAssembly и Python
— Советы и рекомендации по работе с Python
— Проектирование и добавление функционала в концепт ForTeаToo (42)
— Простая нейронная сеть без библиотек и матриц. Эволюционный алгоритм
— Прикладное использование теории построения информационно-исторических систем
— Простая нейронная сеть без библиотек и матриц. Обучение с учителем
— Гиперпараметрический поиск и оптимизация моделей
— Теория разработки информационно-исторических систем с реализацией концепта
— Как дообучить LLaMA бесплатно и без программирования: как создать тупого друга
— Introduction to Sets in Python
— How to Add Color to Old Black and White Movies and Images | using DeOldify
— A way to (actually) run Python code in ChatGPT
— What is Machine Learning?
— Webhook and Ansible
— Navigating Databases with Python: A Beginner-Friendly Guide
— Send Automated Emails (smtplib & Python) Through Lambda
— Benefits of hybrid search
— How to change desktop wallpaper in Python
— Generate Html code using python
Посмотреть:
🌐 Универсальный рецепт по написанию и аннотированию декораторов Python.
Хорошего дня!
@pro_python_code