С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/169: Рейтинг темы: голосов - 169, средняя оценка - 4.53
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214

Вычисление среднего роста учеников в классе

08.04.2019, 19:11. Показов 34744. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программисту Васе поставили задачу разработать систему, вычисляющую средний рост учеников в классе.

Данные в эту систему поступают последовательно, рост указывается в сантиметрах, каждое число на отдельной строке.

Но вот беда: изначально неизвестно, сколько учеников учится в классе. Программа должна вывести ответ после того, как ввод данных прекратился.

Помогите Васе справиться с поставленной задачей.

Формат ввода
Последовательность натуральных чисел, каждое на отдельной строке.

Формат вывода
Вещественное число. Никаких округлений производить не надо. В случае, если никаких данных не поступало, следует вывести -1

Пример 1
Ввод
130
127
131
Вывод
129.33333333333334
Пример 2
Ввод

Вывод
-1

вот код и он почему-то не работает, помогите пожалуйста исправить

Python
1
2
3
4
5
6
7
8
9
10
11
12
lst = []
 
while True:
    try:
        lst.append(int(input()))
    except:
        break
 
if len(lst) == 0:
    print(-1)
else:
    print(sum(lst) / len(lst))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2019, 19:11
Ответы с готовыми решениями:

Определение среднего роста и среднего веса всех учеников
Помогите решить следующие задания:Опишите комбинированный тип для записей,содержащих следующие данные учеников: фамилию,имя,год...

Известен рост каждого из n учеников 9А класса и m учеников 9Б класса. Составте программу сравнения среднего роста ученик
Известен рост каждого из n учеников 9А класса и m учеников 9Б класса. Составте программу сравнения среднего роста учеников этих классов....

В массиве представлен рост учеников в классе. Сколько учеников выше среднего?
Срочно!!! Не знаю как решить. В массиве представлен рост учеников в классе. Сколько учеников выше среднего? (Кол-во учеников не указано)

19
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
09.04.2019, 06:50
в смысле не работает? что не так?
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
09.04.2019, 08:32
Вещественное число - float, а не int
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
09.04.2019, 09:35
JduNona, зачем тут список? Это очень долго ведь. Плюс отлавливайте определённое исключение.

Python
1
2
3
4
5
6
7
8
9
10
11
def av_height():
    s, k = 0, 0
    
    for i in range(100):
        try:
            s += float(input())
            k += 1
        except ValueError:
            break
     
    return -1 if not s else s / k
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
09.04.2019, 16:34  [ТС]
как я понял, система ругается на expect, а так ваш код тоже не рабочий, но спасибо
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
09.04.2019, 17:52
Цитата Сообщение от JduNona Посмотреть сообщение
как я понял, система ругается на expect, а так ваш код тоже не рабочий, но спасибо
что за expect, можно поподробней?
и в каком месте мой код не рабочий?

Добавлено через 3 минуты
Будет смешно, если этот код пройдёт.
Python
1
2
3
4
5
6
7
8
9
10
s, k = 0, 0
    
for i in range(100):
    try:
        s += float(input())
        k += 1
    except ValueError:
        break
     
print(-1 if not s else s / k)
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
11.04.2019, 16:37  [ТС]
не, не прошел
0
2 / 2 / 0
Регистрация: 17.02.2017
Сообщений: 117
11.04.2019, 17:07
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
x = int(input("Количество записей:"))
list1 = []
if x == 0:
    print("-1")
else:
    for j in range(0, x):
        list1.append(int(input()))
    l = len(list1)
    print(l)
    sum = 0
    for i in list1:
        sum+=i
    answer = sum/l
    print(answer)
Добавлено через 2 минуты
или так
Python
1
2
3
4
5
6
7
8
9
10
11
x = int(input("Количество записей:"))
sum = 0
l=0
if x == 0:
    print("-1")
else:
    for j in range(0, x):
        sum+=(int(input()))
        l+=1
    answer = sum/l
    print(answer)
Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
10
11
x = int(input("Количество записей:"))
sum = 0
l=0
try:
    for j in range(0, x):
        sum+=(int(input()))
        l+=1
    answer = sum/l
    print(answer)
except ZeroDivisionError:
    print('-1')
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.04.2019, 18:43
Может, потому что там список из 100 чисел? А в задании указано, что ввод неограничен. Не?
Python
1
2
3
4
5
6
7
8
9
10
s, k = 0, 0
    
while True:
    try:
        s += float(input())
        k += 1
    except ValueError:
        break
     
print(-1 if not s else s / k)
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
13.04.2019, 15:46  [ТС]
Traceback (most recent call last):
File "solution.py", line 5, in <module>
s += float(input())
EOFError: EOF when reading a line
make: *** [run] Error 1
Ввод
130
127
131
Ожидаемый результат
129.33333333333334
Вывод
Makefile:5: recipe for target 'run' failed

вот, чекер выдает вот такую ошибку
0
2 / 2 / 0
Регистрация: 17.02.2017
Сообщений: 117
13.04.2019, 16:32
Цитата Сообщение от JduNona Посмотреть сообщение
Traceback (most recent call last):
File "solution.py", line 5, in <module>
s += float(input())
EOFError: EOF when reading a line
make: *** [run] Error 1
Ввод
130
127
131
Ожидаемый результат
129.33333333333334
Вывод
Makefile:5: recipe for target 'run' failed
вот, чекер выдает вот такую ошибку
Последний код работает, как и коды выше, проверено в онлайн питоне, разберитесь в том как вы запускаете программу, потом говорите, что не работает
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
14.04.2019, 13:47  [ТС]
работает, а чекер все равно выдает ошибку, видимо из-за того, что нужно при вводе одну строку не заполнять, чтобы выводил
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
14.04.2019, 16:54
JduNona, https://trinket.io/python3/32f7cc649d
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
15.04.2019, 14:46  [ТС]
у нас чекер другой, как я понял, но он ругается на то, что нужно пустую строку ввести, чтобы заработало, а так, код рабочий
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
15.04.2019, 15:53
JduNona, какой ваш вариант решения проблемы? По какому принципу должен быть выход из цикла?
0
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
15.04.2019, 20:29  [ТС]
я не знаю, не понятно как оно работает, спасибо за помощь, попытаюсь у друзей спросить как они сделали

Добавлено через 45 минут
Python
1
2
3
4
5
6
7
8
import sys
 
data = list(map(str.strip, sys.stdin))
if len(data) == 0:
    print('-1')
else:
    data = list(map(lambda x: float(x), data))
    print(sum(data) / len(data))
вот это было правильным
0
0 / 0 / 0
Регистрация: 03.02.2019
Сообщений: 2
20.04.2019, 22:54
JduNona, в яндекс лицее учишься?
0
0 / 0 / 0
Регистрация: 18.04.2024
Сообщений: 2
02.05.2024, 17:39
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Все же вроде просто
 
import sys
 
 
height = []
 
for i in sys.stdin:
    height.append(i)
 
count = 0
 
if len(height) > 0:
    for j in height:
        count += int(j)
 
    answer = count / len(height)
    print(answer)
 
else:
    print('-1')
Добавлено через 3 минуты
вот так
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
08.05.2024, 12:49
Цитата Сообщение от Def_Pythonist Посмотреть сообщение
Все же вроде просто
и еще проще:
Python
1
2
3
import sys
*arr, = map(int, sys.stdin)
print(sum(arr)/len(arr) if arr else -1)
0
1 / 1 / 0
Регистрация: 30.01.2025
Сообщений: 4
11.05.2025, 16:10
Python
1
2
3
import sys
numbers = list(map(int, map(str.strip, sys.stdin)))
print(-1) if len(numbers) == 0 else print(sum(numbers) / len(numbers))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2025, 16:10
Помогаю со студенческими работами здесь

Определить количество учеников, рост которых больше среднего роста по классу
Рост учеников класса представлен в виде массива. Определить количество учеников, рост которых больше среднего роста по классу.

Массивы. Определить количество учеников, рост которых больше среднего роста по классу
Помогите пожалуйста.Не могу решить=( Рост 25 учеников класса представлен в виде массива. Определить количество учеников ,рост которых...

Написать программу, определяющий рост учеников, которых больше среднего роста по классу
Пожалуйста помогите написать программу, определяющий рост учеников, которых больше среднего роста по классу!

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

Цикл, вычисление среднего роста
Всем Привет! Мое задание: Задано n количество студентов. Нужно узнать средний рост. В Общем мне нужно составить так код, что бы я ввел, к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru