python_per_month | Unsorted

Telegram-канал python_per_month - Python Learning

28574

№ 4974297878 Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/Python_per_month

Subscribe to a channel

Python Learning

Метод __getitem__

Метод __getitem__ является частью протокола индексации, который позволяет объекту быть индексируемым, как это делается, например, для списков или словарей. Этот метод вызывается при использовании квадратных скобок [] для доступа к элементам объекта.

Этот метод также используется при работе с срезами. Если вы хотите, чтобы ваш объект поддерживал срезы, вы также можете реализовать метод __getitem__ с тремя аргументами: self, start, stop.

#для_начинающих

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход строку и возвращает количество уникальных слов в этой строке. Считайте, что слова разделяются пробелами, знаками препинания должны быть удалены. Напишите код и расскажите, как вы обрабатываете знаки препинания. Какие дополнительные оптимизации можно внести?


Объяснение:
В этом коде (первая картинка) мы используем string.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).

Оптимизации (вторая картинка):
Мы могли бы использовать регулярные выражения для более точного удаления знаков препинания и разделения слов. Вместо создания промежуточного списка words, мы могли бы сразу подсчитывать уникальные слова при проходе по строке, что сэкономило бы память.

Читать полностью…

Python Learning

Не трогайте, это на Новый год!

Профессия «Python-разработчик» 🐍

🎁 Скидка до 30 000 рублей и кэшбек на карту до 25 000 рублей при успешном прохождении обучения!

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

Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.

📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия и стоит ли продолжать!

Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8K3P5Q

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход строку и возвращает количество уникальных слов в этой строке. Считайте, что слова разделяются пробелами, знаками препинания должны быть удалены. Напишите код и расскажите, как вы обрабатываете знаки препинания. Какие дополнительные оптимизации можно внести?


Объяснение:
В этом коде мы используем string.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).

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

Читать полностью…

Python Learning

💻 Определяем ip адрес своего компьютера

Этот код использует библиотеку requests для отправки HTTP-запроса к веб-сервису ipify, который предоставляет API для определения публичного IP-адреса пользователя. Код написан в форме функции get_public_ip, что делает его удобным для повторного использования.

Использование блока try-except обеспечивает обработку исключений, которые могут возникнуть при запросе (например, проблемы с подключением к интернету). Если запрос успешен, функция возвращает IP-адрес, иначе возвращает сообщение об ошибке.

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Напишите функцию на Python, которая принимает на вход строку из слов, разделенных пробелами, и возвращает новую строку, в которой каждое слово написано задом наперед. Например, для входной строки "Hello World" функция должна вернуть "olleH dlroW".


Решение:

В начале кода мы используем метод split(), чтобы разбить входную строку на список слов. Это делается по пробелам, предполагая, что слова разделены пробелами. Затем мы используем генератор списка (list comprehension), чтобы перевернуть каждое слово в списке. word[::-1] — это способ перевернуть строку с помощью среза. Далее мы используем метод join(), чтобы объединить перевернутые слова обратно в строку, разделяя их пробелами и, наконец, возвращаем полученную строку.

Читать полностью…

Python Learning

Метод str.expandtabs()

Метод str.expandtabs() используется для замены символов табуляции ('\t') в строке на пробелы в соответствии с заданным размером шага табуляции. Метод принимает один аргумент — tabsize, который указывает количество пробелов, на которое следует заменять каждый символ табуляции.

#для_начинающих

Читать полностью…

Python Learning

#Вопросы_с_собеседования
У вас есть список словарей, представляющих информацию о книгах. Каждый словарь содержит поля «название» (title), «автор» (author) и «год выпуска» (year). Напишите функцию на Python, которая принимает такой список книг и возвращает словарь, в котором ключами являются года выпуска, а значениями — списки книг, выпущенных в этот год. Книги в каждом списке должны быть упорядочены по алфавиту по названию.


Решение:

1. Используем defaultdict(list), чтобы автоматически создавать пустой список для каждого года.
2. Книги сортируем по названию перед группировкой, чтобы списки книг в каждом году были упорядочены по алфавиту.
3. Проходим по отсортированным книгам и добавляем их в соответствующие списки годов в словаре.

Читать полностью…

Python Learning

Разработчики создали ChatGPT, БЕЗ ОГРАНИЧЕНИЙ ПО ЗАПРОСАМ.

Он может:

-Кодить и обучать кодингу
-Стать репетитором по английскому
-Создавать контент план
-Быть психологом, СММщиком, мотиватором
-Писать рефераты/рассказы/песни/стихи/статьи на любые темы
-Создать резюме
-Объяснить любую тему

Возможности ограничены только вашей фантазией. @NeuroConnect_Bot

Читать полностью…

Python Learning

⁉️ Как аналитику обрабатывать данные из разных источников практически в реальном времени?

Узнайте на бесплатном открытом уроке «Как на Spark Structured Streaming работать с данными в HDFS и Kafka?» от OTUS.

💻 На вебинаре:

— узнаем, какие источники данных могут быть обработаны стриминговым API Spark;
— рассмотрим конкретные примеры с данными на HDFS и Kafka;
— разберёмся, как осуществить подключение к таким источникам;
— научимся группировать данные.

👉 Занятие пройдёт 4 декабря в 20:00 мск в рамках курса «Spark Developer». После урока вы сможете продолжить обучение на курсе. Оплата доступна в рассрочку.

🔥 Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: https://clck.ru/36psVq

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Python Learning

Композиция (ассоциация) классов

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

Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.

Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.

Читать полностью…

Python Learning

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

Для перевода текста с английского на русский и преобразования его в голосовое сообщение, вы можете использовать библиотеки googletrans для перевода и gTTS (Google Text-to-Speech) для синтеза речи.

pip install googletrans==4.0.0-rc1
pip install gtts

Читать полностью…

Python Learning

argcomplete

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

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

#для_продвинутых

Читать полностью…

Python Learning

__subclasshook__

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

Протокол __subclasshook__ предоставляет способ определить подходит ли класс для использования в качестве подкласса заданного класса. Если метод возвращает True, то класс считается подклассом. Если метод возвращает NotImplemented, то это означает, что проверка должна быть выполнена с использованием стандартных правил.

#для_продвинутых

Читать полностью…

Python Learning

Twisted

Twisted — это асинхронный фреймворк для разработки сетевых приложений на языке Python. Он предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования.

Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные.

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

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

#для_продвинутых

Читать полностью…

Python Learning

memoryview()

memoryview() в Python предоставляет объект для доступа к внутреннему представлению данных в виде буфера без копирования. Этот объект позволяет вам просматривать байты объекта, не копируя их, а также выполнять различные операции на уровне байтов.

memoryview() также может использоваться для работы с массивами и другими объектами, поддерживающими буферный интерфейс в Python.

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

#для_начинающих

Читать полностью…

Python Learning

pow()

В Python функция pow() используется для вычисления степени числа. Вот как она работает:

result = pow(x, y, z)


где: x — основание степени,
y — показатель степени,
z (необязательный параметр) — модуль, по которому производится вычисление.
Если z указан, то pow(x, y, z) возвращает (x y) % z. Если z не указан, то возвращается x y.

#для_начинающих

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход список словарей, представляющих собой записи о студентах. Каждый словарь содержит ключи 'name', 'age' и 'grade'. Функция должна возвращать средний возраст студентов и среднюю оценку. Напишите код и объясните, как бы вы обработали случаи, когда в словарях отсутствуют ключи или значения не являются числами
.

Объяснение:
В этой функции мы проходим по списку словарей, проверяем наличие ключей 'name', 'age' и 'grade' и их типы. Если данные валидны, добавляем их к общей сумме, чтобы затем посчитать средние значения.

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Объясните, что делает данная функция (первая картинка), оптимизируйте ее, и напишите тесты для проверки ее корректности.

Что делает функция:

Данная функция some_function принимает список чисел input_list, проходится по каждому элементу в списке, проверяет, является ли элемент четным числом, и если да, то добавляет квадрат этого числа в новый список result. В конце функция возвращает этот новый список.

Оптимизация кода:
Мы можем использовать list comprehension для более компактной записи этой функции:

def optimized_function(input_list):
return [item ** 2 for item in input_list if item % 2 == 0]


Также, если вам необходимо, чтобы функция работала для любого итерируемого объекта, вы можете добавить проверку на четность элемента и заменить на использование генератора:

def general_function(iterable):
return (item ** 2 for item in iterable if item % 2 == 0)


Тестирование:
Теперь напишем тесты для проверки корректности функции. Мы можем использовать библиотеку unittest для этого (вторая картинка).

Читать полностью…

Python Learning

⚡️Хакатон Brand Analytics ML Сontest

Компания Brand Analytics - разработчик лидирующей системы мониторинга соцсетей и СМИ на рынках России и СНГ, приглашает всех желающих принять участие в контесте и разработать решение, способное генерировать текст суммаризации комментариев под постами в социальных сетях.

Что ждёт участников?
🔹 Борьба за призовой фонд размером в 200 000 рублей;
🔹 Обратная связь от с экспертов крупной IT-компании;
🔹 Возможность проявить себя и продемонстрировать свои скиллы;
🔹 Новый кейс в портфолио, созданный в рамках решения реальной задачи.

📆Дата проведения: 4 - 25 декабря
📍Формат: онлайн

Подробная информация и регистрация: https://tglink.io/2d6d3099988a?erid=LjN8K46n9 

Реклама. ООО "АКСЕЛЕРАТОР ВОЗМОЖНОСТЕЙ". ИНН 9704005146.

Читать полностью…

Python Learning

#Вопросы_с_собеседования
Объясните, что такое обработка исключений в Python, и предоставьте пример кода, демонстрирующий использование блока try-except.


Обработка исключений в Python позволяет программисту обрабатывать и управлять ошибками в коде. Блок try содержит код, который может вызвать исключение. Если исключение происходит, выполнение кода переходит к блоку except, который содержит обработчики конкретных типов исключений.
Блок else выполняется, если в блоке try не возникло исключение.
Блок finally выполняется всегда, независимо от того, произошло исключение или нет. Этот блок используется, например, для освобождения ресурсов.

В примере на картинке в функции divide_numbers представлен пример деления двух чисел с использованием блока try-except. В случае деления на ноль выводится сообщение об ошибке. Если переданы нечисловые значения, программа сообщает об ошибке типа. В блоке else выводится сообщение об успешном выполнении операции, а в блоке finally выводится сообщение, которое всегда выполняется.

Читать полностью…

Python Learning

Есть тип мужчин, которым сложно общаться

Знакомиться или начать диалог - особенно сложно. И по работе, и с девушками.

Слишком много мыслей — "Что обо мне подумают другие?".

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

А уж самое сложное — знакомиться и общаться с интересными девушками. Сразу возникает застенчивость.

Сложно показать девушке свой сексуальный интерес. В итоге пообщаемся "как друзья"

Что стоит глубоко за этой сложностью в общении?

Ведь часто такой парень довольно умен. И проблема не в речи.

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

Фактически это установки и эмоциональные ограничения, сформированные в детстве через родителей.

Выход Один. Это совсем не просто. Но проверено многими:

1 — Надо оцифровать и увидеть в себе бессознательные ограничения. Это по сути контр-интуитивно. И дальше:

2 — Начать впервые ради себя ДЕЛАТЬ то, в чём ты раньше себя ограничивал. Только новый опыт реально меняет установки.

Новые ДЕЙСТВИЯ ради себя - автоматически поднимут твоё состояние значимости.

Через это появляется сила, решительность и удовольствие от себя.

Становится легче делать всё новое. В том числе общаться!

Волшебные таблетки здесь не помогут. Это не просто.

Есть специальный чат-бот в ТГ. Который помогает оцифровать свои установки. И поможет начать ДЕЛАТЬ ради себя.

В боте большой механизм в форме игры. Там есть задания, видео и напоминания.

Это очень крутой бот. Попробуйте пройти.
@anton_lovebot

Иногда это реально влияет на всю жизнь.

Кто уже проходил? -🔥

Читать полностью…

Python Learning

Как получить размер папки с помощью Python?

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

Другие способы решить данную задачу можно найти здесь.

Читать полностью…

Python Learning

16-, 8- и 4-битные форматы чисел с плавающей запятой

Очень подробная и интересная статья.

Смотреть статью

Читать полностью…

Python Learning

NetworkX

NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.

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

#для_продвинутых

Читать полностью…

Python Learning

Ищем 100 человек, которые пройдут 3 курса по IT бесплатно и дадут обратную связь!

Старая цена - 23 500 руб
Цена для тестовой группы - 0 руб 💯

👉🏻Получить курсы тут

Реклама. ООО "ГикБреинс".
ИНН 7726381870

Читать полностью…

Python Learning

#Вопросы_с_собеседования
🔔 Напишите функцию на Python, которая принимает корень бинарного дерева поиска и целое число k, и возвращает k-ый по величине элемент в этом дереве.

Условия:
Бинарное дерево поиска (BST) - это дерево, в котором каждый узел имеет не более двух детей, и для каждого узла его левое поддерево содержит только узлы с ключами, меньшими чем ключ узла, а правое поддерево - только узлы с ключами, большими чем ключ узла.
k всегда валидно и находится в пределах количества узлов в дереве.

Объяснение:
Функция kthSmallest принимает корень бинарного дерева и число k.
Вложенная функция inorder реализует обход дерева в порядке "лево-корень-право", что гарантирует получение элементов в порядке возрастания.
Рекурсивный вызов inorder собирает значения узлов в список.
Функция возвращает k-1 элемент этого списка, так как индексация в Python начинается с нуля.


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

Читать полностью…

Python Learning

Как разработчику увеличить доход?

Расширять список своих скиллов! Начать можно с бесплатного открытого урока «Шаблон проектирования ""Цепочка обязанностей""» от OTUS.

На вебинаре:
- рассмотрим превращение элементов поведения в объекты;
- проанализируем его на конкретном примере, формируя диаграмму классов;
- узнаем, как использовать шаблон «Цепочка обязанностей» для решения различных задач;
- покажем, как создать классы обработчиков и связать их в цепочку так, чтобы сообщение было обработано последовательно каждым обработчиком;
- разберем возможности настройки приоритета и условий обработки определенных сообщений.

Занятие пройдёт 5 декабря в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». После урока вы сможете продолжить обучение в рассрочку.

Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/hze4/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Python Learning

Библиотека Qiskit

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

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

#для_продвинутых

Читать полностью…

Python Learning

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

Для начала используем метод translate для удаления знаков препинания из исходной строки. Модуль string предоставляет строку punctuation, содержащую все знаки препинания. Метод translate использует таблицу перевода для удаления указанных символов.

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

Создаём пустой словарь word_count для подсчета вхождений каждого слова. Затем, используя цикл for, проходимся по списку слов и обновляем счетчик в словаре. Если слово уже есть в словаре, увеличиваем его счетчик на 1; если нет, добавляем его в словарь с начальным счетчиком 1.

Наконец, возвращаем словарь word_count, который содержит количество вхождений каждого слова в тексте.

#Вопросы_с_собеседования

Читать полностью…
Subscribe to a channel