@didan144

У меня в программе ошибка не считает последную функцию не тот ответ как исправить?

def name_class(): 
    name=input('Имя: ') 
    clas=input('Класс: ') 
    print('Приветствую тебя,',name) 
    return clas 
    return name 
clas=name_class() 
def ball(): 
    math=int(input('Баллы по математике: ')) 
    rus=int(input('Баллы по русскому языку: ')) 
    info=int(input('Баллы по информатике: ')) 
    sum=math+info+rus 
    return sum 
ball() 
def prohod1(): 
    if clas == 9 and sum > 180 or clas == 10 and sum > 200 or clas == 11 and sum > 220: 
        print('Приглашаем на награждение') 
    else: 
        print('Хороших каникул') 
prohod1()

Напиши программу, которая по баллам определяет учеников, которым нужно прийти на награждение (участвуют только ученики 9, 10, 11 класса):
1 функция запрашивает имя и класс пользователя и выводит приветствие
2 функция запрашивает количество баллов от 1 до 100 по 3 предметам (математика, русский язык, информатика) и суммирует их
3 функция сверяет класс и сумму баллов с проходным баллом
если (9 класс больше 180 баллов) или (10 класс больше 200 баллов) или (11 класс больше 220 баллов), то выводится сообщение “Приглашаем на награждение”, в противном случае “Хороших каникул”
Пример работы программы:
<<Имя: Вика
<<Класс: 10
Приветствую тебя, Вика
<<Баллы по математике: 78
<<Баллы по русскому языку: 67
<<Баллы по информатике: 62
Приглашаем на награждение
  • Вопрос задан
  • 189 просмотров
Решения вопроса 3
ZERGeich
@ZERGeich
Во-первых, не использовать sum.
Во-вторых, в первой функции name не вернётся примерно никогда.
В-третьих, результат неплохо бы обернуть в int() прежде чем сравнивать с цифрами, иначе условие не выполняется.
В-четвёртых, привыкайте оборачивать отдельные условия в скобки, и читабельность повысится и ошибки будут сразу заметными. Например как-то так:
if ((int(clas) == 9) and (int(su) > 180)) or ((int(clas) == 10) and (int(su) > 200)) or ((int(clas) == 11) and (int(su) > 220)):
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Впридачу ко всему остальному выше:
return clas 
return name

Отработает только первый return.
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Функции ball вызывается и возвращает результат вникуда. Вам нужно в той функции, которая использует результат вычисления sum, его явно из ball получать и присваивать куда надо.
Кстати, слово sum не надо использовать как имя, оно занято системной функцией sum.
def ball():
    my_summ = 2 + 2
    return my_summ


def main():
    summa = ball()
    print(summa)


main()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы