Придумай задачи на python: по две на if else , for k in range, while
Ответ нейросети
16 декабря 2025 08:28
Ниже шесть задач для практики Python: по две на if-else, for k in range и while. Для каждой задачи добавлено краткое формулирование, пример ввода/вывода, готовое решение и подробное пошаговое объяснение.
- Задача на if-else 1: Определение високосного года
Формулировка: Пользователь вводит год. Нужно вывести, является ли год високосным.
Вход: одно целое число year.
Выход: строка "Високосный год" или "Обычный год".
Пример:
- Ввод: 2000
- Вывод: Високосный год
Решение (код): def is_leap_year(year): if year % 400 == 0: return True elif year % 100 == 0: return False elif year % 4 == 0: return True else: return False
year = int(input("Введите год: ")) print("Високосный год" if is_leap_year(year) else "Обычный год")
- Пошаговое объяснение:
- Год високосный, если делится на 4, но не на 100, за исключением случаев, когда делится на 400.
- Сначала проверяем делимость на 400 — если да, год високосный.
- Затем проверяем делимость на 100 — если да, но не на 400, год не високосный.
- Затем проверяем делимость на 4 — если да, год високосный.
- Во всех остальных случаях год не високосный.
- Временная сложность: O(1).
- Задача на if-else 2: Оценка по баллу
Формулировка: Вводится балл от 0 до 100. Присваивается буквенная оценка по диапазонам: A 90–100, B 80–89, C 70–79, D 60–69, F ниже 60.
Вход: одно целое число score.
Выход: строка с буквой-grade.
Пример:
- Ввод: 85
- Вывод: B
Решение (код): score = int(input("Введите балл (0-100): ")) if score >= 90: grade = 'A' elif score >= 80: grade = 'B' elif score >= 70: grade = 'C' elif score >= 60: grade = 'D' else: grade = 'F' print("Оценка:", grade)
Пошаговое объяснение:
- Сначала проверяем самый высокий диапазон (>=90) — если выполняется, ставим A.
- Далее последовательно проверяем меньшие диапазоны: 80–89, 70–79, 60–69.
- Все остальные баллы считаем F.
- Обязательно используем цепочку if/elif/else, чтобы хотя бы одно условие сработало и мы не проверяли лишние условия.
Временная сложность: O(1).
- Задача на for k in range 1: Печать чётных чисел от 2 до N
Формулировка: Пользователь вводит N (N ≥ 2). Нужно вывести все чётные числа от 2 до N включительно.
Вход: одно целое число N.
Выход: последовательность чётных чисел, разделённых пробелами.
Пример:
- Ввод: 10
- Вывод: 2 4 6 8 10
Решение (код): N = int(input("Введите N: ")) evens = [k for k in range(2, N + 1, 2)] print(*evens)
Пошаговое объяснение:
- range(2, N+1, 2) генерирует числа начиная с 2 до N включительно с шагом 2.
- Мы собираем их в список и выводим через распаковку, чтобы пробелы разделяли значения.
- Альтернатива: можно выводить в цикле с пробелами, но список и распаковка проще и читаема.
Временная сложность: O(N/2) ≈ O(N).
- Задача на for k in range 2: Список квадратов чисел от 1 до N
Формулировка: Пользователь вводит N. Нужно вывести квадраты чисел от 1 до N.
Вход: одно целое число N (N ≥ 1).
Выход: последовательность квадратов: 1^2, 2^2, ..., N^2.
Пример:
- Ввод: 4
- Вывод: 1 4 9 16
Решение (код): N = int(input("Введите N: ")) squares = [k * k for k in range(1, N + 1)] print(*squares)
Пошаговое объяснение:
- range(1, N+1) перебирает числа от 1 до N.
- Каждый элемент возводим в квадрат и добавляем в список.
- Выводим элементы списка через пробел.
Временная сложность: O(N).
- Задача на while 1: НОД двух чисел (алгоритм Евклида)
Формулировка: Вводятся два положительных числа a и b. Нужно найти их наибольший общий делитель (НОД).
Вход: два целых числа a, b.
Выход: НОД(a, b).
Пример:
- Ввод: 48 18
- Вывод: 6
Решение (код): a = int(input("Введите a: ")) b = int(input("Введите b: ")) while b: a, b = b, a % b print("НОД:", a)
Пояснение пошагово:
- Используется алгоритм Евклида: НОД(a, b) = НОД(b, a mod b).
- Пока b не станет 0, заменяем a на b, а b на остаток a mod b.
- Когда b становится 0, последнее ненулевое значение a — это НОД.
Временная сложность: O(log min(a, b)).
- Задача на while 2: Факториал числа n
Формулировка: Вводится неотрицательное n. Нужно вычислить n! (факториал).
Вход: одно целое число n (n ≥ 0).
Выход: n!
Пример:
- Ввод: 5
- Вывод: 120
Решение (код): n = int(input("Введите n (n ≥ 0): ")) fact = 1 i = 2 while i <= n: fact *= i i += 1 print(f"{n}! = {fact}")
Пояснение пошагово:
- Факториал n! определяется как произведение 1×2×...×n; для n=0 результат 1 (опционально можно учесть отдельно).
- Начинаем с fact = 1 и умножаем на каждое число от 2 до n.
- Итоговое значение — факториал.
Временная сложность: O(n).
Если хочешь, могу адаптировать задачи под конкретный класс или тему (например, заменить примеры на задачи с строками или списками, добавить обработку ошибок ввода и тесты).
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



