Python
Написать функцию, которая предложит пользователю ввести 10 чисел и затем одну из трех операций, которую нужно будет выполнить:
avg - среднее значение
min - минимальное число
max - максимальное число
Программа должна принять ввод пользователя и выполнить операцию согласно выбранной команде.
Пример:
input 10 numbers:
>1
>2
>3
>4
>5
>6
>7
>8
>9
>0
input one of command : (avg, min, max):
>max
9
p.s Символом > обозначен пользовательский ввод.
Answers & Comments
Verified answer
Ответ:
def avg(n):
return sum(n) / len(n)
q = list()
print('input 10 numbers: ')
for _ in range(10):
q.append(int(input()))
print('input one of command: ')
tr = input()
if tr == 'avg':
print(avg(q))
elif tr == 'min':
print(min(q))
elif tr == 'max':
print(max(q))
else:
print('Error.')
Объяснение:
q - список, куда складываем все введённые числа.
В цикле for пользователь вводит числа (каждое на новой строке, как в примере) и они добавляются в список.
tr - переменная для хранения команды.
def avg(n) - это функция для подсчёта среднего значения, вызывается только при вводе пользователем команды avg.
Дальше проверяем, еслои пользователь вводит avg, то в функцию avg передаём список.
Если min, то используем встроенную функцию min для поиска минимального значения в списке.
Если max, то используем встроенную функцию max для поиска максимального значения в списке.
Если команда будет введена иная, то выводим ошибку.
Ответ:
def number():
numbers = []
sum = 0
for i in range(10):
num = int(input())
numbers.append(num)
numbers.sort()
do = input('input one of command : (avg, min, max):\n')
if do == 'avg':
for n in numbers:
sum = sum + n
print(sum / 10)
elif do == 'min':
print(numbers[0])
elif do == 'max':
print(numbers[9])
Объяснение:
Для ввода 10 чисел был использован цикл range, после мы сортируем от меньшего к большего с помощью .sort(), дальше использовал конструкцию if-elif-elif для выбора фунцкии, для получения min/max использовал получение елемента списка, для avg в переменную sum через цикл for добавил все цифры и поделил на 10.