Занимательные задачи Python
259 subscribers
3 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят каждый день в 14.00.
Download Telegram
Задача 94
Разные случайные числа

Сделайте функцию, которая выводит случайное число от 1 до 100. При этом вызовы функции не должны выдавать два одинаковых числа подряд.
Задача 95
Случайные числа с половинками

Вывести случайное число в заданном промежутке, к примеру от 1 до 100. Случайное число может быть целым 3, или половинкой 3.5.
Задача 96
Пути к вложенным папкам

Дана папка с файлами и подпапками, в подпапках могут быть свои подпапки и файлы и так далее. Выведите на экран пути ко всем файлам, расположенных в этих папках.
Задача 97
Перестановка рядов матрицы

Дан произвольный двухмерный список:
[
[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],
]

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

Дан произвольный двухмерный список:
[
[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, 15, 13, 14, 12],
[21, 25, 23, 24, 22],
[31, 35, 33, 34, 32],
[41, 45, 43, 44, 42],
[51, 55, 53, 54, 52],
]
Задача 99
Перестановка элементов

Дан произвольный двухмерный список:
[
[11, 32, 13, 44, 55],
[31, 42, 53, 66, 75],
[12, 26, 33, 45, 52],
[15, 22, 35, 64, 57],
[21, 52, 32, 44, 38],
]

Найдите максимальный и минимальный элементы и поменяйте их местами.
Задача 100
Сборка счастливого билета

Дан список из шести цифр. Проверьте, можно ли собрать из этих цифр счастливый билет.
Задача 101
Подсчет цифр в списке

Дан список с числами. Подсчитайте количество цифр 3 в этом списке. Например, в следующем списке их пять:

[10, 13, 35, 3, 433]
👍2🔥1👏1
Задача 102
Разница между датами

Даны две даты в формате "год-месяц-день". Найдите разницу в днях между этими датами.
2👍1🔥1
Задача 103
Количество слов с заданными первыми и последними буквами

Дан текст (строка). Подсчитайте количество слов, которые начинаются на заданную букву и заканчиваются на заданную букву.
Задача 104
Добавление ряда и колонки в матрицу

Дан произвольный двухмерный список:
[
[11, 12, 13],
[21, 22, 23],
[31, 32, 33],
]

Напишите код, который добавит в него еще
один ряд и еще один столбец,
заполненные случайными значениями:
[
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
[41, 42, 43, 44],
]
Задача 105
Количество рабочих дней между датами

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

Получите список дат всех ближайших 10-ти вторников в формате "год-месяц-день".
Задача 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],
]
Задача 108
Следующий день рождения

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

Дан список чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.

Пример:
[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]
Задача 110
Определение четверти года

Дана дата в формате 'год-месяц-день'. Определите, к какой четверти года относится эта, и сколько дней осталось до конца этой четверти.

Четверти года:
- I: январь-март (1-3 месяц)
- II: апрель-июнь (4-6 месяц)
- III: июль-сентябрь (7-9 месяц)
- IV: октябрь-декабрь (10-12 месяц)
Задача 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)

Примечание: если список подходит под оба типа, верните "арифметическая"
(приоритет у арифметической прогрессии).
Задача 112
Валидация математического выражения

Дана строка с математическим выражением, содержащим числа, операторы +-*/ и скобки. Проверьте корректность расстановки операторов: - два оператора не могут стоять подряд - после открывающей скобки не может быть оператора (кроме унарного минуса) - перед закрывающей скобкой не может быть оператора - выражение должно начинаться и заканчиваться числом или скобкой

Пример:
"2*(3+4)-5/2" → true
"2*+3" → false
Задача 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 (нет полного повторения паттерна)
Задача 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] (список не изменился)