#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
запускаете функцию … ну, он возвращается к вызывающей стороне и не выполняет остальную часть своего кода. Вы никогда не достигнете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
, чтобы он никогда не выполнялся.