Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Модуль geopy

Он абстрагирует различные API геокодирования, что позволяет получать данные о местоположении, такие как полный адрес, координаты (широта и долгота), а иногда и высота.

Также в geopy есть класс Distance, который позволяет вычислять расстояние между двумя точками с учётом различных единиц измерения. Это удобное решение для работы с расстояниями между городами, точками на карте или другими географическими объектами.
❤6
Создание текстового калькулятора для конверсии единиц измерений

Если вам нужно быстро перевести один тип измерений в другой (например, из километров в мили или из фунтов в килограммы), Python отлично подойдет для таких задач.

Пример кода:

def convert_units(value, from_unit, to_unit):
conversions = {
('км', 'м'): value * 1000,
('м', 'км'): value / 1000,
('кг', 'фунты'): value * 2.20462,
('фунты', 'кг'): value / 2.20462,
}
return conversions.get((from_unit, to_unit), "Конвертация не поддерживается")

value = float(input("Введите значение для конвертации: "))
from_unit = input("Введите единицу измерения (например, 'км' или 'кг'): ")
to_unit = input("Введите единицу измерения для перевода (например, 'м' или 'фунты'): ")

print(f"Результат: {convert_units(value, from_unit, to_unit)}")


Этот калькулятор поможет вам легко и быстро конвертировать единицы измерения. Простой и удобный инструмент для повседневных нужд
❤‍🔥4
Инструмент командной строки howdoi

howdoi — это удобный инструмент командной строки, который позволяет быстро искать решения для программирования прямо из терминала. Задайте вопрос, и он автоматически находит ответ на StackOverflow, извлекая наиболее подходящий фрагмент кода.

Однако стоит помнить, что он может не всегда давать точные или самые лучшие решения, ведь он ориентируется на топовые ответы, а не на их качество. Тем не менее, это отличный способ быстро получить ответы, когда нужно что-то срочно, не отвлекаясь на поиски в браузере.
👍5🍌1
Библиотека Jedi
Библиотека
для автодополнения и анализа кода помогает ускорить процесс написания программ, улучшая продуктивность разработчика. Одной из полезных возможностей, которую она может предложить, является работа с kwargs.

Когда перед объектом словаря ставятся две звёздочки (например, **my_dict), его содержимое передаётся в функцию как именованные аргументы. Ключи словаря становятся именами аргументов, а значения — их значениями. Причём вам не нужно обязательно использовать имя kwargs — это может быть любое название.
❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
yt-dlg

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

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

➡️ Cсылка на GitHub
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
BiRefNet: Нейросеть для умной сегментации изображений

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

Она будет отличным решением для разработчиков, которым нужно бесплатное, но мощное средство для работы с изображениями.

Модель поддерживает множество вариантов применения, от сегментации портретов до обнаружения скрытых объектов и многого другого.

BiRefNet легко интегрируется в различные приложения, а её модели можно найти на таких платформах, как Hugging Face и fal.ai, что делает её доступной для разработчиков по всему миру.

Совет: Если хотите провести быструю обработку изображений, BiRefNet — идеальный выбор для ваших проектов!

➡️ Cсылка на GitHub
👍2
Перегрузка операторов в Python

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

🎯 Интересный факт: перегрузка операторов помогает улучшить читаемость и выразительность кода, когда вы работаете с собственными классами.
👍3
Библиотека sh

Позволяет вызывать любые внешние программы как обычные функции прямо в коде Python. Это делает её идеальным инструментом для автоматизации различных задач и интеграции сторонних утилит без необходимости писать сложный код для работы с процессами. С помощью sh можно легко взаимодействовать с операционной системой и сторонними сервисами, повышая эффективность разработки и ускоряя рабочие процессы.
👍10
Срезы — это мощный инструмент в Python для работы с итерируемыми объектами, такими как строки, списки и кортежи. С их помощью можно извлекать определённые части объектов, не изменяя их исходное состояние. Срезы позволяют гибко манипулировать данными, быстро выделяя подмножества, что делает работу с коллекциями более удобной и эффективной.
❤‍🔥5❤1
Пересечение множеств позволяет получить только те элементы, которые присутствуют одновременно в двух или более множествах. Для этого в Python можно использовать метод intersection(), который возвращает новое множество, содержащее общие элементы.

Это полезный инструмент для работы с данными, когда нужно выделить пересекающиеся элементы из разных коллекций.
👍6❤‍🔥3
Объединение коллекций в Python позволяет объединить элементы нескольких коллекций в одну. Для множеств используется метод union(), который возвращает новое множество, содержащее все уникальные элементы из исходных коллекций.

Однако стоит отметить, что кортежи — это неизменяемые последовательности, и для их объединения нужно использовать операторы + или методы, такие как tuple() для преобразования других коллекций в кортежи.
👍3
Модуль uuid (https://docs.python.org/3/library/uuid.html) в Python предоставляет быстрый и простой способ генерации UUID (универсально уникальных идентификаторов).

Эти идентификаторы часто используются для создания уникальных ключей в базах данных, меток для объектов или при идентификации различных сущностей в распределённых системах.
❤2
Функция map() в Python применяет указанную функцию к каждому элементу итерируемого объекта (например, строки, списка или кортежа).

В нашем примере, если нужно преобразовать элементы в целые числа, то в качестве функции будет использоваться int. Функция map() возвращает итератор, который можно преобразовать в список с помощью функции list(), чтобы получить результаты в виде коллекции.
👍6👎1
Вот пример скрипта, который можно использовать для создания викторины или интерактивного опроса:

import random

# Список вопросов для викторины
questions = [
{
"question": "Какой цветок традиционно ассоциируется с 8 марта?",
"answers": ["Роза", "Тюльпан", "Лилия", "Ромашка"],
"correct_answer": "Тюльпан"
},
{
"question": "В каком году был установлен Международный женский день?",
"answers": ["1908", "1910", "1912", "1920"],
"correct_answer": "1908"
},
{
"question": "Какая фраза стала символом женского движения?",
"answers": ["«Мир и свобода!»", "«Равенство для всех!»", "«Труд и свобода!»", "«Долой угнетение!»"],
"correct_answer": "«Равенство для всех!»"
}
]

def ask_question():
question = random.choice(questions)
print(question["question"])
for idx, ans in enumerate(question["answers"], 1):
print(f"{idx}. {ans}")

user_answer = input("Ваш ответ (введите номер): ")
if question["answers"][int(user_answer) - 1] == question["correct_answer"]:
print("Правильно! 🎉")
else:
print(f"Неправильно! Правильный ответ: {question['correct_answer']}.")

ask_question()
👍5
Сортировка словаря по значениям

Часто словари используют как таблицы для хранения данных. Однако сортировка элементов словаря по значениям, а не по ключам, может вызвать затруднения. Эта задача решается легко с помощью аргумента key в функции сортировки. Просто передайте в sorted() или sort() функцию, которая будет извлекать значения для сортировки, и данные окажутся упорядочены по нужному критерию.
👍9
Сегодня не только день, когда стоит поздравить замечательных женщин, но и отличный момент, чтобы напомнить себе, как важно в программировании находить баланс и гармонию, как в коде, так и в жизни. 💐

Совет для кодеров: как и в алгоритмах, иногда нужно делать паузу, пересматривать подходы и обновлять переменные — будь то в проекте или в жизни. Пусть этот день вдохновит вас на новые идеи и творческие решения!

Вот небольшой скрипт на Python, который может поздравить всех с 8 марта, генерируя случайное поздравление из заранее подготовленных фраз. Можно использовать, чтобы отправить приятное сообщение друзьям или коллегам-разработчикам.

import random

def поздравление_с_8марта():
поздравления = [
"С 8 марта! Пусть каждый день будет полон радости и вдохновения!",
"С 8 марта! Пусть код компилируется с первого раза, а баги исчезают сами!",
"С 8 марта! Желаю море позитива, улыбок и безупречного кода!",
"С 8 марта! Пусть каждый новый проект будет успешным, а время всегда хватает на отдых!",
"С 8 марта! Пусть алгоритмы счастья всегда приводят к нужному результату!"
]

# Выбираем случайное поздравление
поздравление = random.choice(поздравления)
return поздравление

# Печать случайного поздравления
print(поздравление_с_8марта())


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

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

Иногда условия if бывают настолько простыми, что кажется излишним выделять для них отдельные строки кода. В таких случаях удобно использовать тернарный оператор if/else, который позволяет записать условие в одну строку.
Это упрощает код и делает его более компактным, особенно когда нужно вернуть одно значение в зависимости от условия.
👍5
Разность множеств в Python

В Python вычислить разность между множествами можно двумя способами: с помощью оператора - или метода difference(). Например, если есть два множества — A и B, то разность A-B вернёт все элементы из A, которых нет в B.
🔥2
🔧 Модуль tqdm: простой способ отслеживать прогресс выполнения

Если ваш код работает долго, вам, наверное, знакомо чувство неопределенности — «черный ящик», где неясно, на каком этапе находится выполнение. В этом поможет tqdm! Этот модуль генерирует информативные прогресс-бары, которые показывают не только текущий прогресс, но и оставшееся время до завершения.

Теперь можно в реальном времени отслеживать выполнение программы прямо в консоли, без лишних догадок. Отличное решение для всех, кто хочет всегда быть в курсе процесса.👌
👍6
🧑‍💻 Функция re.match()

Функция re.match() используется для поиска совпадений шаблона только в начале строки. Это значит, что она проверяет, начинается ли строка с заданного паттерна.
🔄 Функция re.sub()

Функция re.sub() позволяет заменять части строки, которые соответствуют заданному шаблону. Это полезно, когда нужно выполнить массовую замену или очистку данных.

Она принимает три обязательных аргумента: шаблон, строку для замены и саму строку, в которой будет происходить замена.

Пример:
import re
result = re.sub(r"\d+", "#", "У меня 3 яблока и 5 апельсинов")
print(result)

Вывод:
У меня # яблока и # апельсинов


Это заменит все числовые значения на символ #. В результате, вы получаете обновленную строку с замененными фрагментами.
👍6❤1