Вывод принимает значения, которые я даю, и выполняется без каких-либо ошибок, но оператор печати не выполняется

#python

#python

Вопрос:

Я только начинаю работать с Python и, практикуя функции для печати оценки ученика, чье имя и оценку я ввожу, он выполняется без каких-либо ошибок.

Я просто не могу заставить его печатать имя и оценки независимо от того, что я делаю.

Код:

 namee=input('What is your name: ')
scoree=float(input("What is your grade: "))
def markz(name,score):
    if score >= 9.0 and score <= 9.9: return "A"
    elif score >=8.0 and score <= 8.9: return "B"
    elif score >=7.0 and score <= 7.9: return "C"
    elif score >=6.0 and score <= 6.9: return "D"
    elif score <=5.0 : return "F"
    else: return "Invalid Grade"
    print("Hello ," name ". You are graded ",score)
markz(namee,scoree)
  

Я хочу, чтобы выходные данные были похожи на, Привет, xyz. Вы оцениваетесь как B

Комментарии:

1. Когда вы return запускаете функцию … ну, он возвращается к вызывающей стороне и не выполняет остальную часть своего кода. Вы никогда не достигнете print инструкции. Вместо return изменения оценки сохраните ее в другой переменной

Ответ №1:

В принципе, вы должны вернуть markz() в инструкции печати. Кроме того, я немного упростил ваш код.

Попробуйте это:

 def markz(score):
    if 9.0 <= score <= 9.9:
        return "A"
    elif 8.0 <= score <= 8.9:
        return "B"
    elif 7.0 <= score <= 7.9:
        return "C"
    elif 6.0 <= score <= 6.9:
        return "D"
    elif score <= 5.0:
        return "F"
    else:
        return "Invalid Grade"


namee = input('What is your name: ')
scoree = float(input("What is your grade: "))

print("Hello , "   namee   ". You are graded ", markz(scoree))
  

Пример вывода:

 What is your name: Foo
What is your grade: 8
Hello , Foo. You are graded  B
  

Причина, по которой он не работал для вас, заключалась в том, что print("Hello ," name ". You are graded ",score) просто недоступен. Вы поместили его после последнего return , чтобы он никогда не выполнялся.