Seal
Сумма списка;Напишите функцию solve(nums) | которая принимает список чисел и возвращает их сумму.;easy;lists;def solve(nums): return sum(nums);def solve(nums): return len(nums);[{"input": [1,2,3], "output": 6}, {"input": [10, -5, 2], "output": 7}] | ||||||
Палиндром;Напишите функцию solve(s) | которая проверяет | является ли строка палиндромом и возвращает True или False.;easy;strings;def solve(s): return s == s[::-1];def solve(s): return False;[{"input": "abba", "output": true}, {"input": "abc", "output": false}] | |||||
Факториал;Напишите функцию solve(n) | которая вычисляет факториал числа n.;medium;functions;def solve(n): return 1 if n==0 else n*solve(n-1);def solve(n): return n;[{"input": 5, "output": 120}, {"input": 0, "output": 1}] | ||||||
Максимум в списке;Напишите функцию solve(nums) | которая возвращает максимальный элемент списка nums.;easy;lists;def solve(nums): return max(nums);def solve(nums): return min(nums);[{"input": [1, 3, 2], "output": 3}, {"input": [-5, -1, -3], "output": -1}] | ||||||
Сумма чисел в строке;Напишите функцию solve(s) | которая принимает строку с числами | разделёнными пробелами | и возвращает их сумму.;easy;strings;def solve(s): return sum(map(int | s.split()));def solve(s): return len(s);[{"input": "1 2 3", "output": 6}, {"input": "10 -5 2", "output": 7}] | |||
Произведение списка;Напишите функцию solve(nums) | которая принимает список целых чисел и возвращает произведение всех чисел в списке.;easy;lists;def solve(nums): prod=1\nfor x in nums:\n prod*=x\nreturn prod;def solve(nums): return sum(nums);[{"input": [2,3,4,5,6,7,8,9,10,11], "output": 39916800}, {"input": [1,2,3], "output": 6}, {"input": [5,0,2], "output": 0}] | ||||||
Подсчёт уникальных чисел;Напишите функцию solve(nums) | которая принимает список целых чисел и возвращает количество уникальных значений в списке.;easy;sets;def solve(nums): return len(set(nums));def solve(nums): return len(nums);[{"input": [1,1,2,2,3,3,4,4,5,5], "output": 5}, {"input": [1,2,3,4,5], "output": 5}, {"input": [10,10,10], "output": 1}] | ||||||
Инверсия регистра;Напишите функцию solve(s) | которая принимает строку и возвращает новую строку с инвертированным регистром всех букв (строчные в прописные и наоборот) | остальные символы без изменений.;easy;strings;def solve(s): return s.swapcase();def solve(s): return s.lower();[{"input": "www.Python-Academy.org", "output": "WWW.pYTHON-aCADEMY.ORG"}, {"input": "Hello123", "output": "hELLO123"}, {"input": "", "output": ""}] | |||||
Первые четыре символа;Напишите функцию solve(s) | которая принимает строку и возвращает первые четыре символа этой строки. Длина строки гарантированно не менее 4 символов.;easy;strings;def solve(s): return s[:4];def solve(s): return s[-4:];[{"input": "panda", "output": "pand"}, {"input": "abcdef", "output": "abcd"}, {"input": "1234", "output": "1234"}] | ||||||
Символы с нечётными индексами;Напишите функцию solve(s) | которая принимает строку и возвращает строку из символов | стоящих на нечётных индексах исходной строки.;easy;strings;def solve(s): return s[1::2];def solve(s): return s[::2];[{"input": "Balakirev", "output": "aaie"}, {"input": "abcdef", "output": "bdf"}, {"input": "12345", "output": "24"}] | |||||
Замена пробела на обратный слеш;Напишите функцию solve(s) | которая принимает строку из двух слов через пробел и возвращает строку | где пробел заменён на обратный слеш '\\'. Реализуйте без использования F-строк.;easy;strings;def solve(s): return s.replace(' ' | '\\');def solve(s): return s.replace(' ' | '/');[{"input": "Hello Balakirev!", "output": "Hello\\Balakirev!"}, {"input": "Python 3.13", "output": "Python\\3.13"}] | |||
Срез последних четырёх элементов;Объявите список v = [1205 | 1101 | 1434 | 1320 | 923 | 874]. Напишите функцию solve(v) | которая возвращает срез списка | содержащий последние четыре элемента.;easy;lists;def solve(v): return v[-4:];def solve(v): return v[:4];[{"input": [1205, 1101, 1434, 1320, 923, 874], "output": [1434, 1320, 923, 874]}, {"input": [1,2,3,4,5,6,7 8,9], "output": [6, 7, 8, 9]}] |
Города через один;Объявите список c = ["Москва", "Ульяновск", "Самара", "Тверь", "Вологда", "Омск", "Уфа"]. Напишите функцию solve(c), которая возвращает срез списка, содержащий элементы через один, начиная со второго (индекс 1).;easy;lists;def solve(c): return c[1::2];def solve(c): return c[::2];[{"input": ["Москва", "Ульяновск", "Самара", "Тверь", "Вологда", "Омск", "Уфа"], "output": ["Ульяновск", "Тверь", "Омск"]}, {"input": ["а","б","в","г","д","е"], "output": ["б","г","е"]}] | |||||||
Добавление элементов кортежа;Объявлен кортеж t = (3.4 | -56.7). На вход подаётся последовательность целых чисел через пробел. Нужно добавить эти числа в конец кортежа t в порядке считывания и вывести результат.;easy;tuples;def solve(nums): t = (3.4, -56.7); t += tuple(nums); return t;def solve(nums): t = (3.4, -56.7); return nums;[{"input": [8, 11, -5, 2], "output": [3.4, -56.7, 8, 11, -5, 2]}, {"input": [], "output": [3.4, -56.7]}] | ||||||
Формирование и проверка кортежа;На вход программе подается строка с названиями городов через пробел. Нужно сформировать кортеж из этих городов в том же порядке. Если в кортеже нет "Москва", добавить её в конец. Вывести города через пробел.;easy;tuples;def solve(s): t = tuple(s.split()); if "Москва" not in t: t += ("Москва",); return " ".join(t);def solve(s): return s;[{"input": "Уфа Казань Самара", "output": "Уфа Казань Самара Москва"}, {"input": "Москва Омск", "output": "Москва Омск"}] | |||||||
Уникальные значения в кортеже;На вход программе подаются целые числа через пробел. Считать их в кортеж | создать второй кортеж с уникальными значениями в порядке появления. Вывести уникальные числа через пробел.;medium;tuples;def solve(s): t=tuple(map(int,s.split())); seen=set(); unique=[]; for num in t: if num not in seen: seen.add(num); unique.append(num); return " ".join(map(str,unique));def solve(s): return s;[{"input": "8 11 -5 -2 8 11 -5", "output": "8 11 -5 -2"}, {"input": "1 1 2 2 3 3", "output": "1 2 3"}] | ||||||
Подсчёт уникальных городов;На вход программе подаются названия городов по одному в строке, пока не встретится строка "q". Нужно определить количество уникальных городов (кроме "q") и вывести это число.;easy;loops_and_sets;def solve(cities): unique=set(); for city in cities: if city=="q": break; unique.add(city); return len(unique);def solve(cities): return len(cities);[{"input": ["Уфа","Москва","Тверь","Екатеринбург","Томск","Уфа","Москва","q"], "output": 5}, {"input": ["q"], "output": 0}] | |||||||
Покупка ручек со скидкой;Гелевая ручка стоит x рублей (вводится из входного потока). Магазин даёт скидку 10% на каждую ручку. Нужно определить максимальное количество ручек | которые можно купить на 500 рублей. Результат сохранить в переменной res (целое число).;easy;math;def solve(x): res = 500 // (x * 0.9); return int(res);def solve(x): return 500 // x;[{"input": 100, "output": 5}, {"input": 50, "output": 11}, {"input": 200, "output": 2}] | ||||||
Максимум из пяти чисел;Допишите программу для нахождения максимума среди пяти целых чисел d1 | d2 | d3 | d4 | d5. Результат сохранить в переменной res.;easy;variables;def solve(d1,d2,d3,d4,d5): res = max(d1,d2,d3,d4,d5); return res;def solve(d1,d2,d3,d4,d5): res = min(d1,d2,d3,d4,d5); return res;[{"input": [1,2,3,4,5], "output": 5}, {"input": [-1,-2,-3,-4,-5], "output": -1}, {"input": [5,5,5,5,5], "output": 5}] | |||
Проверка дробной части;Прочитать стоимость книги X (вещественное число с точностью до сотых). Определить | больше ли дробная часть 0.50. Вывести True | если больше | иначе False. Без условного оператора.;easy;math;def solve(x): return (x - int(x)) > 0.5;def solve(x): return x > 0.5;[{"input": 456.56, "output": true}, {"input": 435.50, "output": false}, {"input": 123.49, "output": false}] | ||||
Форматирование адреса;Прочитать город, улицу, номер дома и квартиры (каждое с новой строки). Вывести строку: "г. <город>, ул. <улица>, д. <номер дома>, кв. <номер квартиры>" с использованием F-строки.;easy;strings;def solve(city, street, house, apartment): return f"г. {city}, ул. {street}, д. {house}, кв. {apartment}";def solve(city | street | house | apartment): return city+street+str(house)+str(apartment);[{"input": ["Москва","Воздвиженка",9,1], "output": "г. Москва, ул. Воздвиженка, д. 9, кв. 1"}, {"input": ["Тула","Ленина",5,12], "output": "г. Тула, ул. Ленина, д. 5, кв. 12"}] | ||||
Обмен рублей на доллары;Прочитать курс доллара (float) и число рублей (int). Вычислить целое количество долларов (отбрасывая дробную часть). Вывести строку: "Вы можете получить <долларов>$ за <число рублей> рублей по курсу <курс доллара>".;easy;strings;def solve(rate, rubles): dollars = int(rubles // rate); return f"Вы можете получить {dollars}$ за {rubles} рублей по курсу {rate}";def solve(rate, rubles): return f"{rubles} рублей";[{"input": [73.54, 1000], "output": "Вы можете получить 13$ за 1000 рублей по курсу 73.54"}, {"input": [70.0, 2100], "output": "Вы можете получить 30$ за 2100 рублей по курсу 70.0}] | |||||||
Форматирование габаритов;Прочитать ширину, глубину, высоту (int), записанные через пробел. Сформировать строку "Габариты: <ширина> x <глубина> x <высота>" с помощью метода format с ключами. Вывести строку.;easy;strings;def solve(w, d, h): return "Габариты: {width} x {depth} x {height}".format(width=w, depth=d, height=h);def solve(w, d, h): return "{} {} {}".format(w, d, h);[{"input": [8, 11, 13], "output": "Габариты: 8 x 11 x 13"}, {"input": [5, 10, 15], "output": "Габариты: 5 x 10 x 15}] | |||||||
Проверка первого и последнего числа в списке;Прочитать строку целых чисел через пробел | сохранить в список lst. Если первое число != последнего | добавить True | иначе False. Вывести список через пробел.;easy;lists;def solve(s): lst = list(map(int, s.split())); lst.append(lst[0] != lst[-1]); return " ".join(map(str, lst));def solve(s): lst = list(map(int, s.split())); return " ".join(map(str, lst));[{"input": "8 12 2 -10 6", "output": "8 12 2 -10 6 True"}, {"input": "5 5 5 5", "output": "5 5 5 5 False"}] | ||||
Вставка города в список;Объявлен список cities = ["Москва", "Казань", "Ярославль"]. Вставить строку "Ульяновск" во вторую позицию. Вернуть список через пробел как строку.;easy;lists;def solve(): cities = ["Москва", "Казань", "Ярославль"] cities.insert(1, "Ульяновск") return " ".join(cities);def solve(): cities = ["Москва", "Казань", "Ярославль"] return str(cities);[{"input": "", "output": "Москва Ульяновск Казань Ярославль"}] | |||||||
Форматирование ФИО;На вход подается строка с именем, отчеством и фамилией через пробел. Необходимо вывести строку в формате: "Фамилия И.О.", где И и О — первые буквы имени и отчества с точками.;easy;strings;def solve(s): name, patronymic, surname = s.split(); return f"{surname} {name[0]}.{patronymic[0]}.";def solve(s): return s;[{"input": "Александр Сергеевич Пушкин", "output": "Пушкин А.С."}, {"input": "Иван Иванович Иванов", "output": "Иванов И.И."}] | |||||||
Кэширование квадратных корней;На вход подаются целые положительные числа по одному в строке до 0. Для каждого числа вычислить квадратный корень с точностью до сотых и вывести его. Использовать словарь для кэширования результатов: при повторном числе выводить "значение из кэша: <число>".;medium;loops | dictionaries;def solve(): import math; cache = {}; while True: n = int(input()); if n == 0: break; if n in cache: print(f"значение из кэша: {cache[n]}"); else: val = round(math.sqrt(n), 2); cache[n] = val; print(val);def solve(): pass;[{"input": "1\n2\n3\n3\n2\n4\n0\n", "output": "1.0\n1.41\n1.73\nзначение из кэша: 1.73\nзначение из кэша: 1.41\n2.0\n"}] | ||||||
Проверка ключей в словаре;На вход программе подается строка с данными в формате ключ=значение, разделённые пробелом. Нужно сформировать словарь из этих пар и проверить, существуют ли ключи 'house', 'True' и '5'. Если все есть — вывести "ДА", иначе — "НЕТ".;easy;dictionaries;def solve(s): d = dict(item.split('=') for item in s.split()); print("ДА" if all(k in d for k in ['house','True','5']) else "НЕТ");def solve(s): print("ДА");[{"input": "вологда=город house=дом True=1 5=отлично 9=божественно", "output": "ДА"}, {"input": "вологда=город house=дом 5=отлично 9=божественно", "output": "НЕТ"}] | |||||||
Перемножение пар чисел;На вход программе поступают две последовательности целых чисел | по одной на строку. Нужно сохранить их в списках/кортежах | перемножить попарно элементы с помощью zip и map. Вывести первые три произведения | используя next | через пробел.;medium;lists | zip | map;def solve(): a = list(map(int, input().split())); b = list(map(int, input().split())); products = map(lambda x: x[0]*x[1], zip(a,b)); print(next(products), next(products), next(products));def solve(): pass;[{"input": "-7 8 11 -1 3\n1 2 3 4 5 6 7 8 9 10", "output": "-7 16 33"}] | |
Таблица из трёх столбцов;На вход программе подается строка из слов через пробел. Нужно разбить слова на три столбца | отбросив лишние | используя zip. Вывести таблицу из трёх столбцов и N строк.;medium;strings | zip;def solve(): words = input().split(); n = len(words) // 3 * 3; words = words[:n]; rows = list(zip(*[iter(words)]*3)); for row in rows: print(*row);def solve(): pass;[{"input": "Москва Уфа Тула Самара Омск Воронеж Владивосток Лондон Калининград Севастополь", "output": "Москва Уфа Тула\nСамара Омск Воронеж\nВладивосток Лондон Калининград"}] | ||||
Проверка всех чисел на чётность;На вход программе подаются целые числа через пробел. Нужно определить | все ли числа чётные | используя all. Вывести True | если все чётные | иначе False.;easy;iteration | all;def solve(): nums = map(int, input().split()); print(all(x % 2 == 0 for x in nums));def solve(): print(False);[{"input": "2 4 6 8 22 56", "output": "True"}, {"input": "2 3 6 8", "output": "False"}] | ||
Проверка наличия отрицательных чисел;На вход программе подаются вещественные числа через пробел. Нужно определить | есть ли хотя бы одно отрицательное число | используя any. Вывести True | если есть | иначе False.;easy;iteration | any;def solve(): nums = map(float, input().split()); print(any(x < 0 for x in nums));def solve(): print(False);[{"input": "8.2 -11.0 20 3.4 -1.2", "output": "True"}, {"input": "1.1 2.2 3.3", "output": "False"}] | ||
Подсчет уникальных слов без учета регистра;На вход программе подается строка со словами через пробел. Нужно подсчитать количество уникальных слов без учета регистра | используя множество. Результат вывести на экран.;medium;strings | sets;def solve(): words = input().lower().split(); print(len(set(words)));def solve(): print(0);[{"input": "Мама мыла раму а потом мыла кота и еще мыла пол", "output": "9"}, {"input": "Привет привет ПрИвет", "output": "1"}] | |||||
Подсчет уникальных городов;На вход программе подаются названия городов, каждое с новой строки. Считать их в цикле до строки "q". Определить количество уникальных городов (исключая "q") с помощью множества. Вывести число.;easy;loops | sets;def solve(): cities = set(); while True: city = input(); if city == "q": break; cities.add(city); print(len(cities));def solve(): print(0);[{"input": "Уфа\nМосква\nТверь\nЕкатеринбург\nТомск\nУфа\nМосква\nq\n", "output": "5"}] | ||||||
Список модулей чисел;На вход программе подаются вещественные числа через пробел. Считать их в список lst. С помощью list comprehension создать список lst_abs с модулями чисел из lst. Вывести lst_abs.;easy;lists;def solve(): lst = list(map(float, input().split())); lst_abs = [abs(x) for x in lst]; print(lst_abs);def solve(): print([]);[{"input": "5.56 -8.7 1.0 3.14 77.845", "output": "[5.56, 8.7, 1.0, 3.14, 77.845]"}] | |||||||
Цифры числа в списке;На вход программе подается семизначное целое положительное число. Считать его и с помощью list comprehension сформировать список lst из цифр числа (числа | не строки). Вернуть lst.;easy;lists;def solve(): n = input() lst = [int(d) for d in n] return lst;def solve(): return [];[{"input": "4567397", "output": "[4, 5, 6, 7, 3, 9, 7]"}] | ||||||
Делители числа;На вход программе подается натуральное число n. Сформировать список делителей n (целые числа | делящие n без остатка) с помощью list comprehension. Вывести делители через пробел.;medium;lists;def solve(): n = int(input()); divisors = [i for i in range(1, n+1) if n % i == 0]; print(*divisors);def solve(): print();[{"input": "10", "output": "1 2 5 10"}, {"input": "1", "output": "1"}, {"input": "13", "output": "1 13"}] | ||||||
Максимум из двух чисел тернарным оператором;На вход программе подаются два вещественных числа. С помощью тернарного оператора определить наибольшее и сохранить в переменную d. Вывести d.;easy;conditional;def solve(): a = float(input()); b = float(input()); d = a if a > b else b; print(d);def solve(): a = float(input()); b = float(input()); d = a + b; print(d);[{"input": "5.4\n-3.8", "output": "5.4"}, {"input": "-2.5\n-2.6", "output": "-2.5"}] | |||||||
Проверка палиндрома с тернарным оператором;На вход программе подается слово. Присвоить msg "палиндром", если слово палиндром (без учета регистра), иначе "не палиндром". Вывести msg.;medium;strings;def solve(): s = input().strip(); msg = "палиндром" if s.lower() == s.lower()[::-1] else "не палиндром"; print(msg);def solve(): s = input().strip(); msg = "палиндром" if s == s[::-1] else "не палиндром"; print(msg);[{"input": "Казак", "output": "палиндром"}, {"input": "Привет", "output": "не палиндром"}] | |||||||
Ноты с диезами;Объявлен список m с нотами. На вход подаются три числа 1-7. Вывести названия нот через пробел | для нот 'до' и 'фа' добавить '#' перед названием. Использовать тернарный оператор.;easy;lists;def solve(): m = ['до', 'ре', 'ми', 'фа', 'соль', 'ля', 'си']; nums = list(map(int, input().split())); res = [('#' + m[i-1]) if m[i-1] in ['до', 'фа'] else m[i-1] for i in nums]; print(' '.join(res));def solve(): m = ['до', 'ре', 'ми', 'фа', 'соль', 'ля', 'си']; nums = list(map(int, input().split())); res = [m[i-1] for i in nums]; print(' '.join(res));[{"input": "1 6 7", "output": "#до ля си"}, {"input": "2 3 4", "output": "ре ми #фа"}] |