НЕ ИСПОЛЬЗОВАТЬ ГОТОВЫЕ ФУНКЦИИ min(), max(), sum()
Напишите функцию, которая принимает несколько чисел, упаковывает их, находит максимальное, минимальное и среднее арифметическое.
Из результатов функция должна сформировать список [min_num, max_num, avg_num] и вернуть этот список.
Сделайте два вызова этой функции:
- в первом случае передайте ей через запятую несколько чисел.
- во втором случае передайте ей список целых чисел.
Ответы
Відповідь:
Пояснення:
Для решения этой задачи, мы можем написать функцию, которая принимает произвольное количество чисел (или список целых чисел), а затем находит минимальное, максимальное и среднее арифметическое значение. Затем, функция сформирует список [min_num, max_num, avg_num] и вернет его.
Вот код функции:
def find_min_max_avg(*args):
# Проверяем, передали ли нам список целых чисел. Если да, конвертируем в кортеж.
if len(args) == 1 and isinstance(args[0], list):
args = tuple(args[0])
min_num = max_num = args[0] # Инициализируем минимум и максимум первым элементом.
total_sum = 0
for num in args:
if num < min_num:
min_num = num
if num > max_num:
max_num = num
total_sum += num
avg_num = total_sum / len(args)
return [min_num, max_num, avg_num]
# Примеры вызовов функции:
# 1. Передаем несколько чисел через запятую:
result_1 = find_min_max_avg(10, 5, 20, 8, 15)
print(result_1) # Вывод: [5, 20, 11.6]
# 2. Передаем список целых чисел:
numbers = [30, 12, 25, 18, 22]
result_2 = find_min_max_avg(numbers)
print(result_2) # Вывод: [12, 30, 21.4]
Функция find_min_max_avg принимает переменное количество аргументов (*args). Если передается только один аргумент и он является списком целых чисел, функция преобразует его в кортеж для обработки. Затем, в цикле проходим по всем числам и находим минимальное и максимальное значение, а также вычисляем общую сумму. Находим среднее арифметическое, разделив общую сумму на количество чисел, и возвращаем результат в виде списка [min_num, max_num, avg_num].