Реальный Python
3.78K subscribers
801 photos
10 videos
7 files
848 links
Все о пайтон, новости, подборки на русском и английском. По всем вопросам @evgenycarter
Download Telegram
Что происходит, когда запускаешь «Hello World» в Linux

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.
print("hello world")

Вот как это выглядит в командной строке:
$ python3 hello.py
hello world


Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.

https://habr.com/ru/companies/ruvds/articles/753506/

#python

👉 @python_real
Выполняйте загрузку Excel-файлов в Python в 1000 раз быстрее

Как пользователь Python, я часто взаимодействую с файлами Excel для работы с данными, поскольку профессионалы предпочитают обмениваться информацией в форматах Excel или CSV. Однако скорость работы Python с файлами Excel довольно низкая.

Рассмотрим пять методов загрузки данных в Python. К концу статьи вы узнаете, как добиться увеличения скорости на три порядка, невероятно ускорив процесс загрузки.

https://python.plainenglish.io/do-you-read-excel-files-with-python-there-is-a-1000x-faster-way-72a15964d30a?gi=a23a0755357a

#python

👉 @python_real
Как использовать операторы break, continue и pass при работе с циклами в Python

Использование циклов for и while в Python позволяет автоматизировать и эффективно повторять задачи.

Но иногда внешний фактор может повлиять на выполнение программы. В таких случаях вам может понадобиться полностью выйти из цикла, пропустить часть цикла перед его продолжением или проигнорировать этот внешний фактор. Эти действия можно выполнить с помощью операторов break, continue и pass.

https://www.digitalocean.com/community/tutorials/how-to-use-break-continue-and-pass-statements-when-working-with-loops-in-python-3

#python

👉 @python_real
Алгоритмы на Python

Включает в себя массу алгоритмов от арифметического анализа до блокчейна и структур данных.

https://github.com/TheAlgorithms/Python

#python

👉 @python_real
6 вещей, о которых вы, вероятно, не знали, что можно делать с Pandas

Со своими мощными и гибкими функциями Pandas стал незаменимым инструментом для ученых данных и аналитиков.

Ссылаясь на статистику, опубликованную PyPI, вы можете себе представить, что Pandas загружают более 3 миллионов раз в день?

Конечно, эта статистика дает мало информации о количестве пользователей. Тем не менее, она подчеркивает широкую популярность библиотеки.

Хотя многие пользователи уже знакомы с её основными функциями, в Pandas всё же есть множество скрытых возможностей, о которых вы, возможно, не знаете.

Итак, в этом блоге я поделюсь шестью интересными вещами, которые вы можете сделать с помощью Pandas, чтобы улучшить свой анализ данных.

https://towardsdatascience.com/6-things-that-you-probably-didnt-know-you-could-do-with-pandas-d365b3362a55

#python

👉 @python_real
Полноценный API на Django REST Framework: легкая разработка, автодокументация и быстрый деплой

Сегодня мы погрузимся в процесс создания собственного API на Django с использованием мощного инструмента — Django REST Framework (DRF). Этот фреймворк предоставляет полный набор инструментов для разработки API: маршрутизация, сериализация данных, обработка запросов и формирование ответов. DRF значительно упрощает взаимодействие с клиентами через HTTP, поддерживая такие методы, как GET, POST, PUT и DELETE.

Однако, в отличие от FastAPI, Django REST Framework не включает встроенный инструмент для автодокументирования API. Мы легко решим эту задачу, воспользовавшись расширением drf‑spectacular, которое генерирует спецификации API в формате OpenAPI 3.0. Это позволит интегрировать интерфейсы, такие как Swagger и Redoc, для удобного тестирования и наглядной визуализации документации.

https://habr.com/ru/companies/amvera/articles/843232/

#python

👉 @python_real
Как использовать PyScript - фреймворк для фронтенда на Python

В последние годы популярность языка Python значительно возросла. Он имеет широкий спектр применения - от наиболее популярного использования в искусственном интеллекте до Data Science, робототехники и скриптинга.

В сфере веб-разработки Python используется в основном на бэкенде с такими фреймворками, как Django и Flask.

https://www.freecodecamp.org/news/pyscript-python-front-end-framework/

#python

👉 @python_real
Вещи, которые я узнал о создании CLI-инструментов на Python:

Я создаю много командных инструментов на Python. Это стало моим любимым способом быстро превращать код в что-то, что я могу использовать сам, а также упаковывать для других людей.

https://simonwillison.net/2023/Sep/30/cli-tools-python/

#python

👉 @python_real
Руководство по сериализации данных в Python

Будь вы дата-сайентист, работающий с большими данными в распределенном кластере, бэкенд-инженер, создающий масштабируемые микросервисы, или фронтенд-разработчик, использующий веб-API, вы должны понимать, что такое сериализация данных. В этом подробном руководстве вы пойдете дальше XML и JSON и исследуете несколько форматов данных, которые можно использовать для сериализации данных в Python. Вы рассмотрите их в зависимости от различных сценариев использования, познакомитесь с их уникальными категориями.

К концу этого руководства вы глубоко разберетесь в различных форматах обмена данными. Вы освоите возможность сохранять и передавать объекты с состоянием, эффективно делая их "бессмертными" и переносимыми во времени и пространстве. В конце концов, вы научитесь отправлять исполняемый код по сети, открывая возможности удаленных вычислений и распределенной обработки.

https://realpython.com/python-serialize-data/

#python

👉 @python_real
Генерация изображений с помощью DALL-E и API OpenAI

Опишите любое изображение, а затем позвольте компьютеру создать его за вас. То, что еще несколько лет назад казалось футуристическим, стало реальностью благодаря достижениям в области нейронных сетей и моделей скрытой диффузии (LDM). DALL-E от OpenAI произвел фурор благодаря удивительному генеративному искусству и реалистичным изображениям, которые люди создают с его помощью.

https://realpython.com/generate-images-with-dalle-openai-api/

#python

👉 @python_real
Выбор хорошего формата файла для Pandas

Прежде чем обрабатывать данные с помощью Pandas, их нужно загрузить (с диска или удаленного хранилища). Pandas поддерживает множество форматов данных: CSV, JSON, Parquet и многие другие.


import sys
import pandas as pd


df = pd.read_csv(
sys.argv[1],
dtype={
"route_id": "category",
"direction_id": "category",
"point_type": "category",
"standard_type": "category",
},
parse_dates=["service_date", "scheduled", "actual"],
)


https://pythonspeed.com/articles/best-file-format-for-pandas/

#python

👉 @python_real
Создание программы записи экрана с помощью Python

Python - это широко распространенный язык общего назначения. Он позволяет выполнять различные задачи. Одна из них - запись видео. Для этого в нем есть модуль pyautogui. Этот модуль вместе с NumPy и OpenCV позволяет манипулировать и сохранять изображения (в данном случае скриншот)

https://www.geeksforgeeks.org/create-a-screen-recorder-using-python/

#python

👉 @python_real
Ловушки, в которые попадают неопытные Python-разработчики

В основном, Python стремится быть чистым и последовательным языком, который избегает сюрпризов. Однако есть несколько случаев, которые могут быть запутанными для новичков.

Некоторые из этих случаев намеренны, но могут показаться неожиданными. Некоторые, возможно, можно рассматривать как недостатки языка. В целом, это сборник потенциально сложного поведения, которое может показаться странным на первый взгляд, но становится понятным, как только вы осознаете причину неожиданности.

https://docs.python-guide.org/writing/gotchas/

#python

👉 @python_real
Как мы решали вопрос многоязычности в боте

Ранее в статье Как мы запускали серьезный проект в Telegram я рассказал общую информацию о моем телеграм-бот проекте World for Life Bot

В этой статье я поделюсь опытом реализации многоязычности, расскажу о принципах выбора языков, которыми я руководствовался, технических аспектах реализации и принятых решениях.

https://habr.com/ru/articles/785582/

#python

👉 @python_real
Возможности для молодых людей в «Алабуге»

В особой экономической зоне «Алабуга» активно развивается лидерская программа «100 Лидеров». В ней могут поучаствовать молодые специалисты от 19 до 29 лет.

У участников есть возможность познакомиться с топ-менеджерами компании, поиграть в бизнес-игры, пройти собеседования с реальным шансом трудоустройства в компанию «Алабуга».

Питание и проживание за счет компании.

Работа в «Алабуге» - это зарплата от 78 до 200 тысяч рублей и участие в реализации проектов мирового уровня.

Следующий поток - с 28 по 31 октября!
Заявку можно подать на сайте.
Параллелизм, конкурентность и AsyncIO в Python — на примерах

Эта статья рассматривает, как ускорить операции, ограниченные процессором (CPU-bound) и вводом-выводом (IO-bound), с помощью многопроцессорности, многопоточности и AsyncIO.


# tasks.py

import os
from multiprocessing import current_process
from threading import current_thread

import requests


def make_request(num):
# io-bound

pid = os.getpid()
thread_name = current_thread().name
process_name = current_process().name
print(f"{pid} - {process_name} - {thread_name}")

requests.get("https://httpbin.org/ip")


async def make_request_async(num, client):
# io-bound

pid = os.getpid()
thread_name = current_thread().name
process_name = current_process().name
print(f"{pid} - {process_name} - {thread_name}")

await client.get("https://httpbin.org/ip")


def get_prime_numbers(num):
# cpu-bound

pid = os.getpid()
thread_name = current_thread().name
process_name = current_process().name
print(f"{pid} - {process_name} - {thread_name}")

numbers = []

prime = [True for i in range(num + 1)]
p = 2

while p * p <= num:
if prime[p]:
for i in range(p * 2, num + 1, p):
prime[i] = False
p += 1

prime[0] = False
prime[1] = False

for p in range(num + 1):
if prime[p]:
numbers.append(p)

return numbers


https://testdriven.io/blog/python-concurrency-parallelism/

#python

👉 @python_real
Ваши генераторные выражения сломаны: чиним и разбираемся

Всем привет! Меня зовут Ефимов Михаил, я профессиональный разработчик с 2010 года и начинающий contributor в CPython.

Итак, название статьи говорит, что генераторные выражения сломаны. О чем вообще речь? Посмотрим на такой код, не содержащий никаких import:


g = (x for x in range(10))
g.gi_frame.f_locals['.0'] = range(20)
list(g)

https://habr.com/ru/articles/853864/


#python

👉 @python_real
Ускоряем анализ данных в 170 000 раз с помощью Python

В статье «Ускоряем анализ данных в 180 000 раз с помощью Rust» показано, как неоптимизированный код на Python, после переписывания и оптимизации на Rust, ускоряется в 180 000 раз. Автор отмечает: «есть множество способов сделать код на Python быстрее, но смысл этого поста не в том, чтобы сравнить высокооптимизированный Python с высокооптимизированным Rust. Смысл в том, чтобы сравнить "стандартный-Jupyter-notebook" Python с высокооптимизированным Rust».

Возникает вопрос: какого ускорения мы могли бы достичь, если бы остановились на Python?

https://sidsite.com/posts/python-corrset-optimization/

#python

👉 @python_real
Python Debugging Handbook - Как отлаживать код на Python

В этом уроке мы углубимся в основы отладки кода на Python. Мы рассмотрим типичные сообщения об ошибках, привлечем сообщество и используем оператор print для поиска и исправления проблем. Основная цель — найти и устранить ошибки в вашем коде, а ключ к успешной отладке заключается в системном подходе.

https://www.freecodecamp.org/news/python-debugging-handbook/

#python

👉 @python_real
Основы работы с декораторами Python

В этом уроке по декораторам Python вы узнаете, что они собой представляют, как их создавать и использовать. Декораторы предоставляют простой синтаксис для вызова функций более высокого порядка.
По определению, декоратор - это функция, которая принимает другую функцию и расширяет поведение последней, не изменяя ее в явном виде. Звучит запутанно, но все станет понятнее после того, как вы увидите несколько примеров работы декораторов.

https://realpython.com/primer-on-python-decorators/

#python

👉 @python_real