2026/27, 10Д, Python: Функции (часть1)

A: Среднее значение списка

Напишите функцию average(a), которая получает на вход список чисел и возвращает среднее значение элементов данного списка. Список содержит только числа и не пуст.

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
average([1, 7, 9])
5.666666666666667

B: Медиана трех чисел

Напишите функцию median(a, b, c), которая получает на вход три числа и возвращает их медиану. В решении нельзя использовать циклы.

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
median(1, 9, 7)
7

C: Принадлежит ли точка квадрату - 1

Даны два действительных числа \(x\) и \(y\). Проверьте, принадлежит ли точка с координатами \((x,y)\) закрашенному квадрату (включая его границу). На рисунке сетка проведена с шагом 1.

Решение оформите в виде функции is_point_in_square(x, y), возвращающую True, если точка принадлежит квадрату и False, если не принадлежит.

Функция is_point_in_square не должна содержать инструкцию if и должна иметь такой вид:

def is_point_in_square(x, y):
    return ...

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
is_point_in_square(0, 0)
True
is_point_in_square(3, -7)
False

D: Принадлежит ли точка квадрату - 2

Даны два действительных числа \(x\) и \(y\). Проверьте, принадлежит ли точка с координатами \((x,y)\) закрашенному квадрату (включая его границу). На рисунке сетка проведена с шагом 1.

Решение оформите в виде функции is_point_in_rhombus(x, y), возвращающую True, если точка принадлежит квадрату и False, если не принадлежит.

Функция is_point_in_square не должна содержать инструкцию if.

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
is_point_in_rhombus(0, 0)
True
is_point_in_rhombus(1, 1)
False

E: Принадлежит ли точка кругу

Даны пять действительных чисел: \(x\), \(y\), \(x_c\), \(y_c\), \(r\). Проверьте, принадлежит ли точка \((x,y)\) кругу с центром \((x_c,y_c)\) и радиусом \(r\).

Решение оформите в виде функции is_point_in_circle(x, y, xc, yc, r).

Функция не должна содержать инструкцию if.

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
is_point_in_circle(0.5, 0.5, 0, 0, 1)
True
is_point_in_circle(0.5, 0.5, 1, 1, 0.1)
False

F: Принадлежит ли точка области

Проверьте, принадлежит ли точка данной закрашенной области. Область неограничена снизу.

Решение оформите в виде функции is_point_in_area(x, y).

Инструкцию if использовать нельзя.

Вызов функции Возвращаемое значение
is_point_in_area(-1, 2)
True
is_point_in_area(0, 0)
False

G: Разверните число

Дано число, получите число, составленное из тех же цифр, записанных в обратном порядке.

Решение оформите в виде функции reverse(n), которая получает на вход значение типа int и возвращает значение типа int.

Вызов функции Возвращаемое значение
reverse(179)
971

H: Следующий палиндром

Для данного числа \(n\) определите следующее за ним число, запись которого является палиндромом.

Решение оформите в виде функции next_palindrome(n), которая получает на вход значение типа int и возвращает значение типа int.

В решении используйте функцию из предыдущей задачи. Сдайте на проверку две функции: reverse и next_palindrome.

Вызов функции Возвращаемое значение
next_palindrome(179)
181

I: Минимальный делитель

Дано натуральное число \(n>1\). Найдите его наименьший делитель, отличный от 1.

Решение оформите в виде функции min_divisor(n). Алгоритм должен иметь сложность \(O(\sqrt{n})\). Используйте цикл while для поиска делителя.

Указание. Если у числа \(n\) нет делителя не превосходящего \(\sqrt{n}\), то число \(n\) — простое и ответом будет само число \(n\).

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
min_divisor(4)
2
min_divisor(5)
5

J: Проверка числа на простоту

Дано натуральное число \(n>1\). Проверьте, является ли оно простым.

Решение оформите в виде функции is_prime(n), которая возвращает True для простых чисел и False для составных чисел. Решение должно иметь сложность \(O(\sqrt{n})\).

Сдайте на проверку только тело функции.

Вызов функции Возвращаемое значение
is_prime(2)
True
is_prime(4)
False

K: Разложение на множители

Дано натуральное число \(n>1\). Постройте его разложение на простые множители. Решение должно быть оформлено в виде функции factor(n), возвращающей список делителей числа в порядке неубывания. Каждый делитель должен быть включен в список с учетом его кратности.

Функция должна перебирать делители до \(\sqrt{n}\), при уменьшении числа \(n\) граница перебора также должна уменьшатся.

Использование функций sqrt, pow, операции ** для извлечения квадратного корня может быть причиной долгого работы программы. Используйте вместо них возведение в квадрат при помощи операции умножения.

Вызов функции Возвращаемое значение
factor(132)
[2, 2, 3, 11]
factor(2)
[2]

L: Произведение цифр

Дано натуральное число \(n\). Посчитайте произведение его цифр, не используя строковые операции (напишите цикл, перебирающий цифры числа). Решение оформите в виде функции product_of_digits.

Вызов функции Возвращаемое значение
product_of_digits(179)
63