Pythonist.ru - образование по питону
26.3K subscribers
81 photos
1 video
934 links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Книги
3. Задачи на логику
4. Проект Эйлера
5. Видео
6. Тесты по Python 3

@aldrson
Download Telegram
Машинное обучение. Pandas AI: библиотека Python для генеративного ИИ

Библиотека Pandas очень популярна на этапе предварительной обработки данных, машинного обучения и глубокого обучения. Но теперь вы можете делать с ней намного больше! Представляем вам новую библиотеку для обработки данных — Pandas AI.

Эта библиотека интегрирует возможности генеративного искусственного интеллекта в Pandas, делая классические датафреймы библиотеки Pandas диалоговыми.

Книги по ML - @maschinelearning

#ml
Задача для новичков

Напишите функцию getSum(), которая принимает два целых неотрицательных числа a и b, а возвращает их сумму. При этом пользоваться операторами + и - запрещается.

Примеры работы данной функции:

getSum(42, 5) --> 47
getSum(3, 7) --> 10
getSum(4, 0) --> 4

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def getSum(a, b):
while b != 0:
carry = a & b
a = a ^ b
b = carry << 1
return a

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

#задача #coding
Топ. asyncio — параллелизм в Python

Параллелизм в Python — одна из самых сложных тем для понимания, не говоря уже о реализации. Не помогает и то, что существует множество способов создания параллельных программ. Возникает куча вопросов. Нужно ли запускать несколько потоков? Использовать несколько процессов? Использовать асинхронное программирование?

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

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

#топ
Задача с кодом. Сиракузская последовательность

Сиракузская последовательность генерируется следующим образом. Берем любое натуральное число n. Если оно четное, то делим его на 2, а если нечетное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1). Над полученным числом выполняем те же самые действия, и так далее.

Немецкий математик Коллатц выдвинул гипотезу: какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.

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

Примеры:

collatz(2) ➞ (2, 2)
# seq = [2, 1]

collatz(3) ➞ (8, 16)
# seq = [3, 10, 5, 16, 8, 4, 2, 1]

collatz(7) ➞ (17, 52)
# seq = [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]

collatz(8) ➞ (4, 8)
# seq = [8, 4, 2, 1]

Решение на нашем сайте.

#задача #coding
Топ. Создание GUI в Python при помощи Tkinter

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

#топ
Задача на логику. Судебная головоломка

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

Почему с точки зрения отдельного обвиняемого лучше признаться, а с точки зрения обоих - не делать этого?

Излагайте свои рассуждения в комментариях!

#логическаязадача
Ответ к задаче "Судебная головоломка"

Когда обвиняемый думает о себе, он может рассуждать следующим образом: "Допустим, второй обвиняемый признается. Если я тоже признаюсь, то получу легкое наказание, а если нет - буду сурово наказан. Допустим также, что второй обвиняемый не признается, тогда меня освободят независимо от моих действий. Поэтому лучше признаться".

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

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

#логическаязадача
Машинное обучение. Нововведения PyTorch 2.0

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

Книги по ML - @maschinelearning

#ml
Тест. Логический тип данных

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

#тест
Функция help() в Python

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

#функции
Задача с кодом. Больше, чем сумма?

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

Примечание: первое число в списке всегда проходит проверку.

Примеры:

greater_than_sum([2, 3, 7, 13, 28]) ➞ True
# 3 > 2 = True
# 7 > 2 + 3 = True
# 13 > 2 + 3 + 7 = True
# 28 > 2 + 3 + 7 + 13 = True

greater_than_sum([1, 2, 4, 6, 13]) ➞ False
# 2 > 1 = True
# 4 > 1 + 2 = True
# 6 > 1 + 2 + 4 = False
# 13 > 1 + 2 + 4 + 6 = False

Решение на нашем сайте.

#задача #coding
Задача на логику. Три подозрительных матроса и дележка бананов

Трое матросов и обезьянка выбрались на берег безлюдного тропического острова. Весь день они бродили по острову, собирая бананы, и в итоге собрали достойное количество: примерно от 50 до 100 бананов. Матросы договорились поделить бананы поровну утром (на троих, обезьянка не в счет).

Ночью один матрос, опасаясь обмана со стороны товарищей, встал, отделил свою треть бананов и перепрятал ее. Бананы ровно на 3 не делились, оставался 1 лишний: его матрос отдал мартышке.

Точно так же поступили по очереди все три матроса.

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

Вопрос: сколько бананов было в общей куче изначально?

Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.

#логическаязадача
Модули. Библиотека Requests Python

Изучение работы с запросами в Python является частью пути любого начинающего разработчика. В этом туториале мы расскажем о базовых принципах и вариантах использования библиотеки Requests.

#модули
Задача для новичков

Напишите функцию isPerfectSquare(), которая определяет, является ли число, поданное в качестве аргумента, полным квадратом другого числа. В этом случае функция должна возвращать True, в противном случае - False.

Пользоваться встроенными функциями типа sqrt(), pow(), **0.5 запрещается.

Примры работы данной функции:

isPerfectSquare(16) --> True
isPerfectSquare(20) --> False
isPerfectSquare(121) --> True

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков

def isPerfectSquare(num):
if num < 1:
return False
left, right = 1, num
while left <= right:
mid = left + (right - left) // 2
square = mid * mid
if square == num:
return True
elif square < num:
left = mid + 1
else:
right = mid - 1
return False

#задача #coding
Топ. Создание Android-приложения с помощью Python Kivy

Если вы являетесь Python-разработчиком и подумываете заняться мобильной разработкой, то фреймворк Kivy — это отличный выбор для вас. С помощью Kivy можно создавать платформонезависимые приложения, компилируемые под iOS, Android, Windows, MacOS и Linux.

#топ
Машинное обучение. Обработка изображений при помощи Pillow

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

Книги по ML - @maschinelearning

#ml
Задача на логику. Остаться в живых

В одной деспотичной стране король созвал всех придворных мудрецов (количество их не принципиально, поэтому будем считать, что их 20).

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

Каждого в шеренге спросят: "Какого цвета на тебе колпак?" Если мудрец ответит правильно, его оставят в живых. Если неправильно, значит он недостоин быть мудрецом и его казнят.

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

Вам тоже дадим ночь, а ответ опубликуем утром:)

#логическаязадача
Ответ к задаче "Остаться в живых"

Мудрецам нужно договориться следующим образом.

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

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

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

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

#логическаязадача
Тест. Базовые типы Python

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

#тест