Занимательные задачи Python

Занимательные задачи Python

@python_tricker

Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят каждый день в 14.00.

260подписчиков
Несколько раз в неделю🇷🇺

Похожие каналы

Все →

Последние посты

Задача 120Архивация старых файловДана корневая папка с вложенными подпапками. Напишите скрипт, который:1. Найдет все файлы, которые не изменялись более 30 дней2. Создаст папку "archive" в корневой папке3. Переместит старые файлы в папку "archive", сохраняя структуру подпапок4. Запишет отчет в файл archiving_report.txtФормат отчета:"Архивировано файлов: 8Освобождено места: 4.2 МБАрхивированные файлы:- old_report.pdf (из /docs/)- backup.zip (из /backups/)- photo1.jpg (из /images/vacation/)"Структура подпапок в папке "archive" должна повторять исходную структуру.Примечание: файлы должны физически перемещаться, а не копироваться.

27 дек. 2025 г.257В Telegram

Задача 119Подсчет файлов по типам в дереве папокДана корневая папка с вложенными подпапками. Напишите скрипт, который:1. Рекурсивно обойдет все подпапки2. Подсчитает количество файлов по расширениям3. Запишет результат в файл file_stats.txtПример:Если в папках есть файлы: a.txt, b.txt, c.jpg, d.pdf, e.txtРезультат: .txt: 3 файла.jpg: 1 файл.pdf: 1 файлВсего файлов: 5Примечание: файлы без расширения не учитывать.

26 дек. 2025 г.234В Telegram

Задача 118Поиск самого большого файлаДана папка с файлами различных типов. Напишите скрипт, который:1. Найдет самый большой файл в папке по размеру (в байтах)2. Выведет информацию о нем: имя файла, размер в КБ, расширение3. Создаст файл largest_file.txt и запишет туда эту информациюФормат вывода в файл:"Самый большой файл: имя_файла.расширениеРазмер: 1234.56 КБ"Если несколько файлов имеют одинаковый максимальный размер,выберите первый найденный.Примечание: не рассматривайте подпапки, только файлы в текущей папке.

25 дек. 2025 г.254В Telegram

Задача 117Суммирование чисел из файловДана папка с текстовыми файлами. В каждом файле находятся целые числа, разделенные пробелами и переносами строк. Напишите скрипт, который:1. Прочитает все файлы с расширением .txt в папке2. Найдет сумму всех чисел из всех файлов3. Запишет результат в новый файл result.txtПример структуры:file1.txt: "10 20 30"file2.txt: "51525"file3.txt: "100 200"Результат: 10+20+30+5+15+25+100+200 = 405Файл result.txt: "405"Примечание: обрабатывайте только файлы с расширением .txt

24 дек. 2025 г.233В Telegram

Задача 116Чередование четных и нечетныхДан список чисел. Проверьте, чередуются ли в нем четные и нечетные числа. Список считается "чередующимся", если каждый следующий элемент имеет противоположную четность предыдущему.Примеры:[1, 2, 3, 4, 5] → True (нечетное, четное, нечетное, четное, нечетное)[2, 4, 6, 8] → False (все четные)[1, 3, 2, 4, 7] → False (1→3: оба нечетные)[10, 5, 8, 3, 2] → True (четное, нечетное, четное, нечетное, четное)[] → True (пустой список считается чередующимся)[7] → True (один элемент всегда чередуется)

23 дек. 2025 г.213В Telegram

Задача 115Сумма цифр числа до однозначногоДано целое положительное число. Найдите сумму его цифр. Если полученная сумма больше 9, повторяйте процесс, пока не получите однозначное число (цифру от 1 до 9).Примеры:123 → 1+2+3 = 6 → 6987 → 9+8+7 = 24 → 2+4 = 6 → 6999 → 9+9+9 = 27 → 2+7 = 9 → 938 → 3+8 = 11 → 1+1 = 2 → 2Этот процесс иногда называют "цифровым корнем" числа.

22 дек. 2025 г.220В Telegram

Задача 114Перестановка максимального и минимального элементовДан список чисел. Найдите в списке максимальный и минимальный элементы и поменяйте их местами. Если максимальных или минимальных элементов несколько, поменяйте местами первые из найденных.Примеры:[3, 7, 2, 8, 5] → [3, 7, 8, 2, 5] (2 и 8 поменялись)[1, 1, 4, 4, 2] → [4, 1, 4, 1, 2] (первая 1 и первая 4 поменялись)[5, 5, 5, 5] → [5, 5, 5, 5] (список не изменился)

21 дек. 2025 г.232В Telegram

Задача 113Проверка периодичности последовательностиДана последовательность чисел. Определите, является ли она периодической (повторяется ли некий паттерн целиком от начала до конца последовательности). Если да, найдите длину наименьшего периода.Примеры:[1, 2, 1, 2, 1, 2] → true, период 2 (паттерн [1, 2])[1, 2, 3, 1, 2, 3, 1] → true, период 3 (паттерн [1, 2, 3])[1, 2, 3, 1, 2, 4] → false (нет полного повторения паттерна)

20 дек. 2025 г.256В Telegram

Задача 112Валидация математического выраженияДана строка с математическим выражением, содержащим числа, операторы +-*/ и скобки. Проверьте корректность расстановки операторов: - два оператора не могут стоять подряд - после открывающей скобки не может быть оператора (кроме унарного минуса) - перед закрывающей скобкой не может быть оператора - выражение должно начинаться и заканчиваться числом или скобкойПример:"2*(3+4)-5/2" → true"2*+3" → false

19 дек. 2025 г.251В Telegram

Задача 111Определение типа последовательностиДан список чисел. Определите, является ли последовательность: 1) Арифметической прогрессией (постоянная разность между элементами) 2) Геометрической прогрессией (постоянное отношение между элементами) 3) Ни тем, ни другимВерните строку: "арифметическая", "геометрическая" или "нет прогрессии".Примеры:[1, 3, 5, 7, 9] → "арифметическая" (разность 2)[2, 4, 8, 16, 32] → "геометрическая" (отношение 2)[1, 2, 3, 5, 8] → "нет прогрессии"[5, 5, 5, 5, 5] → "арифметическая" (разность 0) и "геометрическая" (отношение 1)Примечание: если список подходит под оба типа, верните "арифметическая"(приоритет у арифметической прогрессии).

18 дек. 2025 г.238В Telegram

Задача 110Определение четверти годаДана дата в формате 'год-месяц-день'. Определите, к какой четверти года относится эта, и сколько дней осталось до конца этой четверти.Четверти года:- I: январь-март (1-3 месяц)- II: апрель-июнь (4-6 месяц)- III: июль-сентябрь (7-9 месяц)- IV: октябрь-декабрь (10-12 месяц)

17 дек. 2025 г.249В Telegram

Задача 109Сжатие смежных чиселДан список чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.Пример:[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]

16 дек. 2025 г.237В Telegram

Задача 108Следующий день рожденияДана дата рождения в формате 'день.месяц'. Определите, в какой день недели будет его следующий день рождения.

15 дек. 2025 г.235В Telegram

Задача 107Обнуление столбцаДан произвольный двухмерный список: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]Напишите код, который будет обнулять заданный столбец:[ [11, 12, 0, 14, 15], [21, 22, 0, 24, 25], [31, 32, 0, 34, 35], [41, 42, 0, 44, 45], [51, 52, 0, 54, 55],]

14 дек. 2025 г.249В Telegram

Задача 106Список вторниковПолучите список дат всех ближайших 10-ти вторников в формате "год-месяц-день".

13 дек. 2025 г.270В Telegram