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

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

@aldrson
Download Telegram
Функция reduce в Python

Хотя Python не является языком функционального программирования в чистом виде, с его помощью можно многое сделать и в этой парадигме. И большую часть этого «многого» можно сделать при помощи всего одной функции — reduce.

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

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

Например, addDigits(38) --> 3 + 8 = 11 (число состоит из двух цифр, значит складывает дальше) --> 1 + 1 = 2. Таким образом, результат работы функции равен 2.

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

addDigits(355) --> 4
addDigits(2499) --> 6
addDigits(597) --> 3

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

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

def addDigits(num: int) -> int:
if len(str(num)) == 1:
return num
else:
return addDigits(sum(list(int(i) for i in str(num))))

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

#задача #coding
Задача с кодом. Пары чисел с минимальной разностью

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

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

В списке не будет дублирующихся значений.

Примеры:

min_difference_pair([40, 16, 8, 17, 15])
➞ [15, 16]
# Сумма [15, 16] меньше, чем сумма [16, 17]

min_difference_pair([1, -31, -27, -18, -48, -15, -11, -34])
➞ [-34, -31]

min_difference_pair([0, 2, 35, 42, 45, 14, -6, -1])
➞ [-1, 0]

min_difference_pair([32, 33, 4, 6, 48, 18, 20, -7, -4, 31])
➞ [31, 32]

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

#задача #coding
Tips & Tricks. Сортировка списка кортежей в Python

В этой статье мы рассмотрим, как использовать функцию sorted() и метод sort(), а также разберем различия между ними. Вы узнаете, как происходит сортировка кортежей в Python, и увидите, как дополнительные параметры key и reverse расширяют возможности сортировки.

#tipsandtricks
Задача на логику. Возраст сыновей

Два математика, не достигшие пенсионного возраста, встретились после долгого перерыва. Приведем фрагмент их диалога:
- Ну, а дети у тебя есть?
- Три сына.
- А сколько им лет?
- Если перемножить, будет как раз твой возраст.
- (После размышления.) Мне этих данных недостаточно.
- Если сложить их возраст, получится сегодняшнее число.
- (Вновь после размышления.). Все еще не понимаю.
- Кстати, средний сын любит танцевать.
- Понял.

А вы можете определить возраст каждого из сыновей?

#логическаязадача
🐞QaRocks — всеобъемлющий канал для тех, кто хочет стать тестировщиком. Официальный канал сайта qarocks.ru.

Пара фактов о канале:
— ребята публикуют переводы англоязычных туториалов
— составляют большие гайды — например, составили гайд: "Что будет на собесе джуна?"
— составили 25 тестов, которые должен пройти каждый тестировщик
— составляют список вопросов на собеседовании тестировщика,
— публикуют подборки необходимых QA книг
— проводят регулярные холиварные обсуждения — вот, например, подписчики рассказывают, какие курсы проходили перед началом работы;
— держат руку на пульсе актуальных зарплат 2023 года в сфере тестирования;
— публикуют обучающие статьи и видео, профессиональный юмор;

Кому полезно:
— начинающим и продолжающим тестировщикам;
— тем, кто хочет войти в айти через тестирование;
— девам, которые тестируют свой код;

Подписывайся на QaRocks и узнай уже наконец разницу между тест-планом и баг-репортом 😇
Ответ к задаче "Возраст сыновей"

Математик знает произведение и сумму трех целых чисел и не может их определить. Значит, эти числа таковы, что их нельзя определить однозначно.

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

Есть только два исключения:
- 36 = 1*6*6 = 2*2*9, суммы множителей равны 13,
- 40 = 2*2*10 = 1*5*8, суммы множителей равны 14.

Подходит лишь последний вариант, в котором есть средний сын. Поэтому возраст сыновей - 1 год, 5 и 8 лет.

#логическаязадача
ООП. Почему все в Python является объектом?

Разбираем, что такое "объект" и что означает фраза «В Python все является объектом».

#ооп
Тест. String (уровень лёгкий)

В Python string (строка) — это неизменяемая последовательность символов. Из строк, так же как из списков, можно извлекать отдельные символы с помощью индексов.

Хорошо ли вы умеете применять тип string? Пройдите тест из 10 вопросов и проверьте!

#тест
Задача с кодом. Пробелы

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

Примеры:

correct_spacing("The film   starts       at      midnight. ")
➞ "The film starts at midnight."

correct_spacing("The waves were crashing on the shore. ")
➞ "The waves were crashing on the shore."

correct_spacing(" Always look on the bright side of life.")
➞ "Always look on the bright side of life."

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

#задача #coding
Tips & Tricks. Истинные значения в Python

Истинные значения — это значения, которые оценивается как True при использовании в булевом контексте. Аналогично, ложные значения — это значения, которые оцениваются как False. Это полезная фича Python и некоторых других языков.

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

#tipsandtricks
Задача на логику. Кругосветный перелет профессора Фукано

Профессор Фукано планирует облететь вокруг Земли на новом самолете (по экватору, безостановочно). По расчетам, весь перелет займет 6 часов.

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

В распоряжении Фукано есть еще два таких же самолета (с пилотами), которые могут проводить дозаправку в воздухе. Как нужно скоординировать самолеты, чтобы Фукано совершил свой перелет, и при этом ни один из самолетов не разбился бы из-за недостатка топлива?

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

#логическаязадача
Задача для новичков

Напишите функцию isPowerOfThree(), которая принимает на вход целое число. Она должна возвращать True, если число является степенью тройки и False в противном случае.

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

isPowerOfThree(27) --> True
isPowerOfThree(-1) --> False
isPowerOfThree(20) --> False

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

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

def isPowerOfThree(n: int) -> bool:
if n <= 0:
return False
while n % 3 == 0:
n //= 3
return n == 1

#задача #coding
Функция type() в Python

Язык программирования Python предлагает нам функцию для проверки того, какой тип информации хранится в переменных. Эта встроенная функция называется type().

#функции
Задача с кодом. Прямоугольник в круге

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

Примеры:

rectangle_in_circle(8, 6, 5) ➞ True
rectangle_in_circle(5, 9, 5) ➞ False
rectangle_in_circle(4, 7, 4) ➞ False

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

#задача #coding
Задача на логику. Кто есть кто?

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

Первый вошедший с порога бодро заявляет: "Я дизайнер". Следом второй, таинственно улыбаясь: "Я не дизайнер". Через минуту входит третий, усталый на вид, и, покачивая головой, отнекивается: "Я не программист".

Директор, откидываясь на спинку кресла и растягиваясь в хитрой улыбке, замечает: "Только один правду сказал! Как тут догадаться, кто из них кто?"

Пишите ваши варианты в комментариях!

#логическаязадача
Ответ к задаче "Кто есть кто?"

Первый вошедший - программист, второй - дизайнер, третй - админ.

#логическаязадача
Тест. Функции в Python

Хорошо ли вы разбираетесь в функциях? Давайте проверим!

#тест #функции