Обновить
633.6

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга

Обработка исключений в Python: новое исключение

def divide(x=1, y=0):
    try:
        return x / y # первый вызов исключения
    except ZeroDivisionError:
        raise ValueError("Pattern 2 error.") # повторный вызов, новое исключение

divide()

В этом примере вызывается новое исключение с сообщением, при этом сохраняется трассировка исходного исключения. Если возникает ошибка ZeroDivisionError, поднимается новая ошибка ValueError с пользовательским сообщением.

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

Частичный перевод этой статьи из блога jerrynsh.com

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как передать 'enableVNC': True для selenoid при вызове webdriver.Remote на Python Selenium 4 и выше

На Selenium до 4 версии у webdriver.Remote был параметр desired_capabilities, который принимал словарь с настройками браузера для удалённого вызова.

Но начиная с версии 4 этот параметр устарел и перестал поддерживаться, вместо него теперь - options. И в них можно встроенными методами класса передать название браузера или его версию, но вот 'enableVNC': True потерялся.

Selenoid стал хитро поддерживать его на своей стороне через передачу разных параметров в словарике с ключом 'selenoid:options'. В нём можно передать и разрешение браузера по необходимости.

А теперь, собственно, сабж

from selenium import webdriver

webdriver.DesiredCapabilities.CHROME['selenoid:options'] = {'enableVNC': True}
options = webdriver.ChromeOptions()
driver = webdriver.Remote(command_executor=remote_server, options=options)

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Полезные библиотеки Python список из более 100 мини - проектов⁠⁠

Всем привет! Хочу поделиться интересным сборником проектов от уровня "Hello World" до создания ботов WhatsApp.

Python-Mini-Projects — большой сборник(более 100) мини проектов на Python, подойдет как новичкам так и программистам с опытом.

На основе мини проектов можно делать свои более серьезные проекты или дорабатывать код))

Список всех мини программ сборника - клик

Сcылка на GitHub - клик

(Кстати если вы интересуетесь Python и хотите узнать больше об этом языке программирования, то приглашаю вас подписаться на мой канал! https://t.me/python_scrypt полезные материалы, уроки и новости из мира программирования)

Теги:
Всего голосов 10: ↑5 и ↓50
Комментарии0

Как улучшить читаемость и информативность трассировки кода?

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

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

Добавляйте комментарии, используйте docstring: Документируйте свой код с помощью комментариев и описания функции, чтобы обеспечить дополнительный контекст.

Обрабатывайте исключения на соответствующих уровнях: Отлавливайте исключения ближе к источнику ошибки — это сделает вывод более информативным с точным указанием места вызова исключения.

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

Используйте логирование: Модуль logging позволяет дополнять и форматировать информацию об исключениях в более структурированном и настраиваемом виде:

try:
    unknown_method()
except Exception as e:
    logging.error("Error occurred", exc_info=True)

Используйте модуль traceback: Этот модуль также содержит методы, позволяющие обрабатывать возникшие исключения и дополнительно форматировать вывод информации об ошибке. Примеры использования traceback.

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Проект Эйлера: Когда тривиальные задачи с CodeWars надоели и хочется настоящих головоломок⁠⁠

Привет друзья! Если вы не любитель математики или вам неинтересно разбираться в дебрях формул то пропускайте эту статью) если же вам нечем занять свое время нравятся нестандартные задачи, то велком к прочтению!

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

Ссылка на русскоязычный сайт - тык

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

Если вы интересуетесь Python и хотите узнать больше об этом языке программирования, то приглашаю вас подписаться на мой канал! https://t.me/python_scrypt. Полезные материалы, уроки и новости из мира программирования

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Как IT-директору выбрать подрядчика для усиления команды бэкенд-разработки: практический вебинар

Новость для руководителей IT-отделов, техлидов и продукт-оунеров.

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

С чего начать поиск подрядчика? Как подготовиться к выводу на проект внешнего разработчика? Как сформулировать требования к программисту и проверить удаленную команду на благонадежность — на эти и другие вопросы ответят руководители компании Programming Store на бесплатном онлайн-вебинаре.

6 февраля, 16:00 МСК

Зарегистрируйтесь, чтобы получить доступ к вебинару и напоминание накануне.

Зарегистрироваться

Длительность — 1 час.

  • 5 критериев готовности команды к работе с внешними разработчиками

  • Как оценить благонадежность подрядчика

  • Кейсы из практики: ритейл, производство, медицина

Спикер — Роман Огородников, руководитель проектов по backend-разработке в Programming Store.

Также вы сможете задать вопросы и получить ответы напрямую от директора компании и руководителя backend-направления Алексея Петухова.

После мероприятия все зарегистрированные участники получат на почту инструкцию с ключевыми тезисами из вебинара для эффективного выбора подрядчика.

Programming Store — центр удаленной разработки на платформах 1С, Python, Java, MS Dynamics 365. Уже 10 лет мы работаем по всей России и за рубежом с компаниями- внедренцами и крупными клиентами

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Лучшие бесплатные курсы по Python за прохождение которых вам дадут сертификат⁠⁠. Часть:2

Продолжение первого поста

Инди‑курс программирования на Python — курс представляет собой серию последовательных видеоуроков, где подробно и простым языком объясняется информация. После каждого урока Вас ждут практические задания, чтобы закрепить материал. Оценка: 4.9/5

Добрый, добрый Python — этот курс позволит вам изучить основы программирования на языке Python, начиная с самых азов и заканчивая довольно серьезными конструкциями. После каждого теоретического видеоурока вы найдете практические задания на закрепление пройденного материала. Курс рассчитан и на самых начинающих и для тех, кто уже знаком с Python, но хотел бы повысить, а заодно и проверить, свой уровень. Оценка: 4.9/5

Python в примерах и задачах — в курсе реализуется проблемно‑ориентированное обучение, когда минимальные теоретические аспекты программирования на Python предлагаются слушателю, только если этого потребует решаемая задача. Кроме того, в научно‑популярной форме объясняется физическая, математическая или экономическая суть каждой задачи. Оценка: 4.8/5

Python: основы и применение — курс посвящен базовым принципам языка Python и программирования в целом. Он хорошо подойдет тем, кто уже может писать простейшие программы на Python или тем, кто до этого программировал на других языках. Оценка: 4.7/5

Программирование на Python — курс посвящен базовым понятиям и элементам языка программирования Python

Всем удачи в разработке!

Теги:
Рейтинг0
Комментарии1

Лучшие бесплатные курсы по Python за прохождение которых вам дадут сертификат⁠⁠. Часть:1

Привет, друзья! Сегодня рассмотрим подборку курсов для любителей потешить свое эго сертификатами) ну или если представится возможность то показать вашему HRу прося повышение З.П.?

Постарался собрать бесплатные курсы с наибольшими положительными отзывами для начинающих и junior разработчиков, для первых это будет возможность попробовать себя в новой профессии для вторых - возможность освежить знания. (кстати Python community developers - авторский канал со всеми полезностями, советую подписаться)

Подборка курсов будет с платформы Stepik (кто не знает - это платформа для обучения, где размещены платные и бесплатные онлайн курсы а также на ней можно размещать свои курсы).

"Поколение Python": курс для начинающих - курс для начинающих знакомит школьников и всех, кому это интересно, с программированием. От себя добавлю что курс действительно очень подробный. Оценка: 5/5

"Поколение Python": курс для продвинутых - курс продолжает курс "Поколение Python: курс для начинающих" и рассказывает о дополнительных возможностях языка Python, а тренировочные задачи помогают закрепить каждую тему. Оценка: 5/5

Основы программирования на языке Python - курс знакомит с синтаксисом языка Python и базовыми алгоритмами, изучаемыми в средней и старшей школе. Оценка: 4.9/5

Продолжение в следующем посте

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Актуальный список телеграмм чатов по Python, где можно задать вопрос по коду. Подборка январь 2024

Всем привет)). Решил все таки пилить посты с полезной информацией, (в первую очередь для того чтобы самому ее не забыть) Это моя первая статья на Хабре!

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

  1. https://t.me/ru_python - русскоязычный крупный чат по Python, уютный чат для профессионалов, занимающихся поиском питоньих мудростей (13644 участников).

  2. https://t.me/Python - англоязычный ресурс с большой аудиторией. Самый большой чат телеграмм (129079 участников).

  3. https://t.me/+EPJfLFi7gVxkMTli - закрытый от спама чат, на момент публикации статьи аудитория составляет 982 подписчика. Интересно то, что многие из участников (если не все) владеют русским, но переписываются на английском.

  4. https://t.me/pydjango - чат по фреймворку django аудитория русскоязычная (6499 участников).

  5. https://t.me/ru_flask - чат по фреймворку flask. Русскоязычная аудитория. (2100 участников).

  6. https://t.me/ru_python_beginners - Вопросы про Python для чайников. Cпам и троллинг неприемлем (14588 участников).

  7. https://t.me/spbpython - сообщество программистов Python. Хоть это и не большой чат но аудитория живая (340 участников).

  8. https://t.me/propython - сообщество пишущих на Python. Русскоязычная аудитория (1434 участника).

  9. https://t.me/rupython - помощь новичкам по python (764 участника).

    Мой канал в тг. https://t.me/python_scrypt буду рад за подписку

Теги:
Всего голосов 6: ↑4 и ↓2+2
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_19

? Как работает Batch Normalization в PyTorch ? (Часть_2)

  1. Масштабирование и сдвиг: После центрирования и масштабирования активаций, они масштабируются путем умножения на масштабирующий (scaling) коэффициент и сдвигаются путем добавления смещающего (shifting) коэффициента. Эти коэффициенты являются обучаемыми параметрами и оптимизируются вместе с другими параметрами модели.

  2. Вывод активаций: Нормализованные и сдвинутые активации передаются на вход следующего слоя нейронной сети.

  • ? Телеграм-канал: t.me/DenoiseLAB (Если вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

TIOBE Software опубликовала январский рейтинг популярности языков программирования, в котором по сравнению с январём 2023 года выделяется перемещение языка JavaScript с седьмого на шестое место, языка PHP с 10 на 7 место, Scratch с 20 на 10 место (рост популярности на 0.83%), Go — c 12 на 11, Fortran — с 27 на 12 (+0.64%), Object Pascal — c 17 на 13, MatLab — с 15 на 14, Kotlin — с 25 на 17 и Cobol — с 31 на 20.

Языком года назван C#, который сохранил 5 место, но стал лидером по росту популярности (+1.43%).

За год снизилась позиция в рейтинге языков: Visual Basic — с 6 на 8 место, SQL — с 8 на 9, Ассемблер — с 9 на 15, Swift — c 11 на 16, Ruby — с 16 на 18, Rust — c 18 на 19 (при этом популярность Rust выросла на 0.18%).

Рейтинг продолжает возглавлять язык Python, но за год его популярность снизилась на 2.39%. Популярность языка C снизилась на 4.81%, C++ — на 2.95%, а Java — 4.34%.

Индекс популярности TIOBE строит свои выводы на основе анализа статистики поисковых запросов в таких системах, как Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube и Baidu.

В январском рейтинге PYPL, в котором используется Google Trends, тройка лидеров за год не изменилась: первое место занимает язык Python, далее следуют Java и JavaScript. Языки С/C++ поднялись на 4 место, вытеснив язык С# (год назад произошла обратная ротация). По сравнению с январём прошлого года выросла популярность R (+1), Rust (+1), Ada (+2), Dart (+2), Lua (+2), Perl (+1), Haskell (+1).

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_17

? Можете ли вы объяснить, как работает Prophet для прогнозирования временных рядов ? (Часть_2)

  1. Прогнозирование: После оценки компонентов Prophet создает фрейм данных для прогноза, который включает будущие даты. Затем он использует оцененные параметры для генерации прогнозируемых значений временного ряда и доверительных интервалов.

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

  • ? Телеграм-канал: t.me/DenoiseLAB (Если вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Рейтинг0
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_17

? Можете ли вы объяснить, как работает Prophet для прогнозирования временных рядов ? (Часть_1)

  1. Декомпозиция временного ряда: Prophet автоматически декомпозирует временной ряд на несколько компонентов:

    • Тренд: Prophet моделирует гибкий нелинейный тренд, который может быть линейным или логистическим, в зависимости от данных.

    • Сезонность: Prophet обнаруживает и моделирует периодические сезонные компоненты, такие как ежедневные, еженедельные или ежегодные сезонности.

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

  2. Оценка компонентов: Prophet использует метод максимального правдоподобия для оценки параметров тренда, сезонности и праздников в данных. Он оптимизирует функцию потерь, которая учитывает как среднеквадратичную ошибку (MSE) для тренда, так и MSE для сезонности.

  • ? Телеграм-канал: t.me/DenoiseLAB (Если вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Ближайшие события

Доброго времени суток, сообщество Хабра!

На днях вышла статья, где мной проводился анализ задач через API Codewars. Для тех, кто не успел ознакомиться, можно пройти по ссылке: https://habr.com/ru/articles/783326/

В данной статье был проведён опрос, результаты которого определили, что сообщество желает посмотреть решение задачи в GitHub.

Поэтому сюда прикрепляю ссылку GitHub репозитория с анализом статистических данных CodeWars: https://github.com/Dess1996/CodeWarsStat/blob/main/Katas.ipynb

Благодарю всех, кто принял участие в опросе.

До новых встреч!

Теги:
Рейтинг0
Комментарии0

Состоялся релиз статического анализатора Mypy 1.8 (pypi.org). исходные код проекта выложен на GitHub под открытой лицензией MIT.

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

Mypy — статический анализатор типов для Python, который позволяет находить ошибки несоответствия типов в коде. Впервые инструмент Mypy показал Юкка Лехтосало на PyCon в октябре 2012 года. В декабре 2012 года вышел первый релиз. В 2016 году инструмент поддержал создатель Python Гвидо ван Россум. В феврале 2023 года вышла версия 1.0, а в марте 2023 — версия 1.1.1.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_14 (Часть_1)

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

  1. Кросс-валидация (Cross-Validation): Кросс-валидация позволяет оценить производительность модели на разных подмножествах данных. Например, метод k-fold cross-validation разбивает данные на k подмножеств, называемых фолдами. Модель обучается на k-1 фолдах и оценивается на оставшемся фолде. Этот процесс повторяется k раз, каждый раз используя разные фолды. Таким образом, модель оценивается на различных подмножествах данных, что помогает выявить ее стабильность популяции.

  2. Стратифицированная выборка (Stratified Sampling): При формировании обучающей и тестовой выборок можно использовать стратифицированный подход. Это означает, что при разделении данных на выборки будут сохранены пропорции классов или распределений признаков. Такой подход помогает уменьшить возможное искажение данных при изменении популяции.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Задача: найти среднее значение списка чисел 

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

Решение задачи может выглядеть так: 

def find_average(numbers): 

    # Проверяем, что список не пустой, чтобы избежать деления на ноль 

    if len(numbers) == 0: 

        return 0  # Если список пустой, возвращаем 0

    # Вычисляем сумму всех чисел в списке 

    total = sum(numbers) 

    # Вычисляем среднее значение 

    average = total / len(numbers) 

return average

Пример использования:

numbers = [10, 20, 30, 40, 50] 

avg = find_average(numbers) 

print(avg)  # Вывод: 30.0 

Первым шагом в коде выше проходит проверка, что список numbers не пустой — это позволяет избежать деления на ноль и ошибок. Если список не пустой, вычисляем сумму всех чисел в списке с помощью функции sum(). Затем делим эту сумму на количество чисел в списке, чтобы найти среднее значение, и возвращаем его.

Теги:
Всего голосов 6: ↑4 и ↓2+2
Комментарии5

typing.Annotated

Annotated из модуля typing в Python предназначен для добавления метаданных к аннотации. Метаданные, добавленные с помощью Annotated, могут быть использованы инструментами статического анализа или во время выполнения. Во время выполнения метаданные хранятся в атрибуте __metadata__.

from typing import Annotated 

# Синтаксис: Annotated[тип_данных, метаданные]
def say_hello(name: Annotated[str, "this is just metadata"]) -> str:
    return f"Hello {name}"

Логика обработка метаданных зависит от фреймворка или библиотек, в которых используется Annotated. Если логики для обработки метаданных нет, то метаданные игнорируются.

Например, Annotated используется в Pydantic:

from typing import Annotated
from pydantic import Field, TypeAdapter

# Функция Field используется для настройки и добавления метаданных 
# к полям моделей. Field(gt=0) - значит greater than т.е. больше чем 0
PositiveInt = Annotated[int, Field(gt=0)]

# TypeAdapter предоставляет часть функциональности методов экземпляра
# BaseModel в т.ч. валидацию с использованием метаданных из Annotated
ta = TypeAdapter(PositiveInt)


print(ta.validate_python(1))
#> 1
print(ta.validate_python(-1))
#> pydantic_core._pydantic_core.ValidationError:

В первом случае вернёт 1, во втором ошибку валидации т.к. значение должно быть > 0.

Также Annotated используется в FastAPI.

Теги:
Рейтинг0
Комментарии0

Если ты готов участвовать в разработке цифрового ассистента Госуслуг и хочешь узнать всё о Роботе Максе изнутри, приходи на One Day Offer!

Прямо сейчас мы ищем:
— Разработчиков Python
— Data-scientist
— Product Owner
— Продуктовых аналитиков
— Инженеров по тестированию

Когда и где?
7 декабря в онлайне: без лишних собесов, тестовых заданий и бюрократии

Как попасть?

  1. Оставь заявку на участие

  2. Пройди предварительное онлайн-интервью и получи приглашение на ивент

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

Узнать требования к кандидатам и подать заявку

❗️Последний день подачи заявки на участие — 5 декабря

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_9

?Вопрос_9: В чем разница между Rapids, Vaex, Pandas, Polars, Modin, Dask они же все для анализа данных ?

✔️Ответ:

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

  2. Dask позволяет обрабатывать данные, превышающие объем доступной оперативной памяти, с использованием распределенных вычислений. Dask предоставляет абстракции, такие как DataFrame и Array, которые подобны структурам данных из Pandas и NumPyx;

  3. Polars обладает высокой производительностью благодаря использованию Rust в своей реализации, а также предлагает возможности параллельной обработки данных. Она может работать с большими объемами данных и поддерживает некоторые распределенные вычисления;

  4. Vaex использует ленивые вычисления и эффективные алгоритмы для выполнения операций над данными. Она обладает высокой производительностью и может работать с многопоточностью, многопроцессорностью и распределенными вычислениями;

  5. Modin предоставляет интерфейс, совместимый с Pandas, но с оптимизированной производительностью. Она использует различные движки обратной совместимости, такие как Dask и Ray, для распределенных и параллельных вычислений.

    https://t.me/DenoiseLAB

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Вклад авторов