Python

Питон для обучаещегося

Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, оканчивающихся на единицу, или сообщает, что таких чисел нет. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 - признак окончания ввода). Количество чисел не превышает 100. Введённые числа по модулю не превышают 300. Программа должна вывести среднее арифметическое чисел, оканчивающихся на единицу, или вывести NO, если таких чисел в последовательности нет.
 t = [v for v in map(int, iter(input, '0')) if v % 10 == 1]
print(sum(t) / len(t) if t else 'NO')
Виктор Мовчан
Виктор Мовчан
51 096
Лучший ответ
Сергей Цветков Можeт ли C# cтaть языкoм для фpoнтeндa?
 sum = 0  # переменная для хранения суммы чисел, оканчивающихся на 1 
count = 0 # переменная для хранения количества чисел, оканчивающихся на 1

while True:
n = int(input()) # считываем очередное число
if n == 0: # если число равно 0, то заканчиваем ввод
break
if n % 10 == 1: # если число оканчивается на 1, то добавляем его к сумме и увеличиваем счетчик
sum += n
count += 1

if count == 0: # если нет чисел, оканчивающихся на 1, то выводим NO
print("NO")
else: # иначе выводим среднее арифметическое чисел, оканчивающихся на 1
print(sum / count)
Пример работы программы:
 Ввод: 
123
45
678
91
11
0

Вывод:
51.0
В этом примере введены числа 123, 45, 678, 91 и 11. Из них только 91 и 11 оканчиваются на 1, поэтому сумма равна 91+11=102, а количество таких чисел равно 2. Среднее арифметическое равно 102/2=51.0, поэтому программа выводит число 51.0.
count = 0
total = 0

while True:
num = int(input("Введите число (для завершения введите 0): "))
if num == 0:
break
if num % 10 == 1:
total += num
count += 1

if count > 0:
average = total / count
print(f"Среднее арифметическое чисел, оканчивающихся на 1: {average}")
else:
print("NO")
Вот пример кода на языке Python, который решает данную задачу:

sum = 0 # сумма чисел, оканчивающихся на 1
count = 0 # количество чисел, оканчивающихся на 1

while True:
n = int(input()) # считываем очередное число
if n == 0: # если ввод закончился
break # прерываем цикл

if n % 10 == 1: # если число оканчивается на 1
sum += n # добавляем его к сумме
count += 1 # увеличиваем счетчик

if count == 0: # если чисел на 1 не было
print("NO") # выводим NO
else:
print(sum / count) # выводим среднее арифметическое

Этот код читает целые числа, вводимые пользователем, до тех пор, пока не встретит число 0. Если очередное число оканчивается на 1, оно добавляется к сумме чисел, оканчивающихся на 1, и увеличивается счетчик. После окончания ввода, если были введены числа, оканчивающиеся на 1, выводится их среднее арифметическое. Если таких чисел не было, выводится сообщение "NO".