Как найти среднее арифметическое последовательности, если в ней есть знак "."
Задание:
Вычислите среднее арифметическое целых чисел и выведите его. Вы получите целые числа в отдельных строках. Числовая последовательность заканчивается точкой ".", поэтому прекратите считывать ввод на ней. Не округляйте результат до его вывода. На входе всегда будет хотя бы одно число.
Как мне найти ср. арифметическое, если "." - это str, а надо ведь, чтоб все int были?!
И ещё. Написано, что вывод последовательности должен быть в отдельных строках, а у меня список (list = []). И вывод в ряд получается. Я пробовала добавить \n , но не помогло. Может вообще без списка как-то надо?!
sequence = input()
list = []
for n in sequence:
list.append(int(n))
if n == ".":
break
sum_list = sum(list)
len_list = len(list)
avg = sum_list / len_list
print(avg)
Ответы (1 шт):
Не называйте переменные именами объектов, иначе питон будет путать (данные имена зарезервированны питоном)
Поменяйте местами последовательность строк в цикле, так как вы сначала добавляете, а потом проверяете, а должно быть наоборот:
Должно быть так:
if n == ".":
break
lst.append(int(n))
-
Написано, что вывод последовательности должен быть в отдельных строках, а у меня список (list = []). И вывод в ряд получается.
Не понял, что имеется ввиду, но думаю, данный пример поможет:
lst = [1, 2, 3, 4]
for i in lst:
print(i)
Вывод:
1
2
3
4
- В данной строчке
for i in sequence, исходя из входных данных, происходит неправильная обработка, так как вы пытаетесь получить каждый символ в строке, что является неверным:'5, 4, 10'- >5 , 4 , 1 0(символы). Вам нужно разделить строку и при нахождении в некоторой разделенной строке точки, записать в список и закончить цикл.
Пример решения:
sequence = input()
lst = []
for n in sequence.split(', '):
if '.' not in n:
lst.append(int(n))
else:
lst.append(int(n.replace('.', '')))
break
sum_list = sum(lst)
len_list = len(lst)
avg = sum_list / len_list
print(avg)
Вывод:
4.5