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

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

08.04.2019, 19:11. Показов 34999. Ответов 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,706
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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru