About Python [ru]
6.38K subscribers
315 photos
1 video
1.66K links
Все о Python: алгоритмы, паттерны проектирования, задачи, нейронные сети

Канал на бирже - https://telega.in/c/python_tesst

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене

Поговорим о создании пайплайна для обучения нейросетей, сражающихся на арене. Узнайте, как шаг за шагом построить процесс, и попробуйте обучить собственного чемпиона. Подробности и код на GitHub!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Подборка вакансий для сеньоров

DevOps-инженер
CI/CD, Docker, Jenkins, KVM, Kubernetes, Ansible, Bash, Python, GitLab, Grafana
от 300 000 до 350 000 ₽ | от 3 лет опыта

Python разработчик
Python, Docker, Kubernetes, SQLAlchemy, PyQt6, lxml, pytest
Уровень дохода не указан | от 5 лет опыта

Senior Python developer (ServiceController)
Python, FastAPI, PostgreSQL, SQLAlchemy, Kafka, Docker, Kubernetes
Уровень дохода не указан | от 3 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Файловая система без фокусов: как hard links и XOR сэкономят ваши гигабайты

Статья объясняет концепцию символьных и жёстких ссылок на файлы, акцентируя внимание на hard links в Windows, малоизвестных многим веб-разработчикам. В простых примерах раскрывается принцип работы ссылок и их отличия от привычных ярлыков.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Что такое генераторные выражения в Python и чем они отличаются от списковых выражений?

Генераторные выражения — это компактный способ создания итераторов в Python. Они похожи на списковые выражения (list comprehensions), но возвращают по одному элементу за раз, а не создают сразу весь список. Это делает их более эффективными по памяти, особенно для обработки больших объемов данных.

➡️ Пример:

# Списковое выражение — создает весь список в памяти
squared_list = [x**2 for x in range(10)]
print(squared_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Генераторное выражение — возвращает по одному значению
squared_gen = (x**2 for x in range(10))
print(next(squared_gen)) # 0
print(next(squared_gen)) # 1


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


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Возможности функции scatterplot() библиотеки seaborn

Статья объясняет использование функции scatterplot() из seaborn для визуализации взаимосвязи числовых переменных. Рассказывается о параметрах настройки цвета, размера и стиля точек, что помогает в многомерном анализе данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Делаем Телеграм-бота в Cursor AI без знания кода

Статья о создании бота для автоматизации ленты сообщений в Telegram. Как с помощью Cursor AI от Claude реализовать категории через папки и упростить управление новыми каналами.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Смотри на свой код глазами юзера

Задачи сделаны, функционал работает, но когда пользователь берёт продукт в руки, начинаются жалобы.

👉 Совет: перед тем как считать задачу завершённой, протестируй её так, как это сделал бы пользователь. Попробуй ввести неправильные данные, пройди весь сценарий с начала до конца. Это простой шаг, который избавит от лишних багрепортов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка зарубежных вакансий

Senior Python Developer (релокация на Кипр, Лимасол)
🟢Python, FastAPI, PostgreSQL, asyncio, aiohttp, Docker, Kubernetes, Blockchain, Web3.py
🟢Уровень дохода не указан | 3–6 лет опыта

Senior QA Engineer (Mobile)
🟢Ручное тестирование, TeamCity, 3uTools, ADB/AppCat, Charles Proxy, Qase, Sentry, Amplitude, Python
🟢Уровень дохода не указан | 3–6 лет опыта

Data Analyst Team Lead
🟢SQL (PostgreSQL, Clickhouse), Python, Tableau, A/B тестирование
🟢Уровень дохода не указан | более 6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Кроссплатформенные приложения на Python с Flet и FastAPI: Полное руководство по разработке

Статья демонстрирует, как с помощью Python и библиотек Flet и FastAPI создавать кроссплатформенные приложения. Рассматриваются подходы к разработке веб, мобильных и десктопных решений без необходимости изучать другие языки.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Напишите скрипт, который проверяет, существует ли указанный файл, и выводит сообщение Файл найден или Файл не найден.

➡️ Пример:

python check_file.py example.txt
Файл найден


Решение задачи ⬇️

import os
import sys

if len(sys.argv) < 2:
print("Использование: python check_file.py <file_path>")
sys.exit(1)

file_path = sys.argv[1]

if os.path.isfile(file_path):
print("Файл найден")
else:
print("Файл не найден")
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath

В этой статье я даю краткий обзор: в основном это структура данных вида key: value, содержащая примитивные типы данных, такие как строка, логическое значение, числа, а также массивы. JSON очень похож на словарь в Python.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

print(generate_password(12))  # Ожидаемый результат: Например, "A1b@c3D#e4F!"


Решение задачи ⬇️

import random
import string

def generate_password(length):
if length < 4: # Минимальная длина для разнообразия символов
raise ValueError("Длина пароля должна быть не менее 4 символов")

all_characters = string.ascii_letters + string.digits + string.punctuation
password = [
random.choice(string.ascii_lowercase),
random.choice(string.ascii_uppercase),
random.choice(string.digits),
random.choice(string.punctuation),
]
password += random.choices(all_characters, k=length - 4)
random.shuffle(password)
return ''.join(password)

# Пример использования:
print(generate_password(12))
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Junior Python Developer
🟢Python, Django, FastAPI, Flask, AsyncIO, SQLAlchemy, PostgreSQL, Docker, Pytest, GNU/Linux
🟢Уровень дохода не указан | 1–3 года опыта

Python разработчик/developer в IT-банк
🟢Python 3, FastAPI, Flask, PostgreSQL, MySQL, Kafka, Cassandra, Clickhouse, Redis, Elasticsearch, Асинхронное программирование, Многопоточное программирование
🟢Уровень дохода не указан | 3–6 лет опыта

Junior Python Developer
🟢Python, Django, FastAPI, Flask, AsyncIO, SQLAlchemy, PostgreSQL, Docker, Pytest, GNU/Linux
🟢Уровень дохода не указан | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 FastAPI + APScheduler: Простой пошаговый гайд по созданию асинхронного API для мониторинга валют по расписанию на Python

Статья объясняет создание асинхронного API на FastAPI для мониторинга валютных курсов. Рассматриваются парсинг данных, настройка APScheduler, аутентификация и развертывание сервиса с фильтрацией и REST API.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Что такое list comprehension в Python и как он работает?

List comprehension — это лаконичный способ создания списков в Python. С его помощью можно быстро преобразовать или отфильтровать элементы из другого итерируемого объекта, написав компактный и читаемый код.

➡️ Пример:

# Создание списка квадратов чисел от 0 до 9
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Фильтрация чётных чисел
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]


🗣️ List comprehension позволяет комбинировать создание и обработку списков в одну строку, что делает код более компактным и удобным для чтения. Однако его стоит использовать разумно, чтобы не усложнять логику.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Подборка вакансий для мидлов

Backend Python Developer
Python, REST
от 150 000 до 200 000 ₽ | Средний (Middle)

Python разработчик
Python, ООП, PostgreSQL, REST, Docker, SOAP, Паттерны проектирования
до 250 000 ₽ | Средний (Middle)

Backend разработчик
Python, RabbitMQ, WebSockets, FastAPI
от 200 000 ₽ | Средний (Middle)
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Сборщик мусора CPython и его влияние на производительность приложения

Статья раскрывает механизмы управления памятью в CPython, уделяя особое внимание циклическому сборщику мусора (GC). Рассматриваются его работа, запуск и влияние на производительность приложений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Задачка по Python

Напишите скрипт, который принимает два текстовых файла и выводит строки, которые отличаются между ними.

➡️ Пример:

python compare_files.py file1.txt file2.txt

Различия:
file1.txt: Python is amazing.
file2.txt: Python is great.
file1.txt: This is file one.
file2.txt: This is file two.


Решение задачи ⬇️

def compare_files(file1_path, file2_path):
try:
with open(file1_path, 'r', encoding='utf-8') as file1, open(file2_path, 'r', encoding='utf-8') as file2:
file1_lines = file1.readlines()
file2_lines = file2.readlines()

max_lines = max(len(file1_lines), len(file2_lines))
print("Различия:")

for i in range(max_lines):
line1 = file1_lines[i].strip() if i < len(file1_lines) else "<пусто>"
line2 = file2_lines[i].strip() if i < len(file2_lines) else "<пусто>"

if line1 != line2:
print(f"file1.txt: {line1}")
print(f"file2.txt: {line2}")

except FileNotFoundError as e:
print(f"Ошибка: {e}")
except Exception as e:
print(f"Ошибка: {e}")

# Пример использования:
if __name__ == "__main__":
import sys
if len(sys.argv) < 3:
print("Использование: python compare_files.py <file1> <file2>")
else:
compare_files(sys.argv[1], sys.argv[2])
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 7 продвинутых приемов pandas для науки о данных

Статья делится 7 продвинутыми приёмами работы с pandas для оптимизации задач анализа данных. Рассматриваются, например, итерации по группам с df.groupby().iter() и другие способы упростить повторяющиеся операции.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM