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

Дан файл с текстом. В этом тексте встречаются числа. Найдите эти числа и запишите их в новый файл, каждое число на своей строке.
Задача 64
Емейлы из файла

Дан файл с текстом. В этом тексте встречаются емейлы. Найдите эти емейлы и запишите их в новый файл, каждый емейл на своей строке.
Задача 65
Конверсия времени

Дана переменная, содержащая некоторое количество секунд. Получите сколько дней, часов, минут и секунд содержится в этой переменной. Имеется ввиду, что сначала нужно выделить целое количество дней, из остатка выделить целое количество часов, из остатка выделить целое минут, а затем останется количество секунд. Результат представьте в виде словаря.
Задача 66
Проверка на степень

Проверьте, что целое число является степенью другого целого числа. Например, 4 - вторая степень двойки, 9 - вторая степень тройки, 16 - одновременно степень и двойки и четверки. Результатом верните все варианты разложения числа на основание степени и ее показатель.
Задача 67
Проверка на похожесть слов

Некоторые слова выглядят одинаково, если заменить русскую букву на английскую и наоборот. Например, русская и английская буквы 'o', а также 'H' и другие, совпадают. Это может создать проблемы на сайте, к примеру, можно зарегистрировать два 'одинаковых' ника с буквами из разных языков и писать от чужого имени.

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

Пусть есть папка с файлами, названия которых даны на русском языке. Преобразуйте русский текст в названиях файлов в его транслит.
Задача 69
Пересечение строк

Даны две строки. Выведите на экран только те слова, которые содержатся в обеих строках.
Задача 70
Разделение числа на случайную сумму

Дано целое число. Разбейте его на случайное количество целых чисел так, чтобы в сумме они давали это число. Пример: 100 можно разбить на 50+50, или 51+49, или 20+30+50. Количество фрагментов должно быть любым, случайным, сами фрагменты тоже должны быть случайными.
Задача 71
Число прописью

Дано некоторое число:
1234567890

Выведите это число прописью:
'''
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
'''

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

Сделайте функцию, которая будет возвращать заданный знак числа Пи (например, тысячный знак). Номер знака передается параметром функции.
Задача 73
Ближайшие вторники

Выведите даты ближайших 10-ти вторников.
Задача 74
Тройки Пифагора

Найдите все тройки Пифагора в промежутке от 1 до 10000.
❤‍🔥1
Задача 75
Сложение часов и минут

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

Пример:
func('1ч 20 мин + 50 мин') // 2ч 10 мин
Задача 76
Разбитие строки до пробела

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

Подсчитайте суммарное количество цифр в числах от 1 до 1 000 000.
Задача 78
Подсчет многомерного списка

Дан многомерный список. Подсчитайте количество элементов, не являющихся списками, во всех уровнях вложенности.
Задача 79
Сложность пароля

Проверьте сложность пароля. Сложный пароль - это пароль с маленькими латинскими, большими латинскими буквами, цифрами и спецсимволами.
Задача 80
Проникновение списков

Напишите функцию, которая параметрами
будет принимать два списка:
func([1, 2, 3], ['a', 'b', 'c'])

А в качестве результата сливать
эти списки таким образом:
[1, 'a', 2, 'b', 3, 'c']
Задача 81
Частотная сортировка списка

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

Пример. На вход функции подаем
следующий список:
[5, 9, 2, 4, 1, 2, 5, 8, 2, 2, 8, 4, 5]

В результате после сортировки
получим следующий список:
[2, 2, 2, 2, 5, 5, 5, 4, 4, 8, 8, 9, 1]
Задача 82
Рост списка с исключением

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