#python
Вопрос:
def main():
midterm=midtermgra
final=finalgra
semgra=semesterGrade(midterm,final)
category(semgra)
def midtermgra():
midterm=eval(input('Please enter your midterm grade: '))
return midterm
def finalgra():
final=eval(input('Please enter your final grade: '))
return final
def semesterGrade(midterm,final):
semgra=(midterm (final*2))/3
return semgra
def category(semgra):
if(semgra<60):
print('Semester grade: F ')
elif(semgra<70):
print('Semester grade: D ')
elif(semgra<80):
print('Semester grade: C ')
elif(semgra<90):
print('Semester grade: B ')
else:
print('Semester grade: A ')
main()
Я пытаюсь написать структурированную программу, следуя учебным материалам. Однако это оказывается ошибкой
Ошибка типа: неподдерживаемые типы операндов для *: «функция» и»int».
Я перечитал свои учебные слайды, но не могу понять проблему. Кто-нибудь может мне помочь?
Комментарии:
1. попробуйте
final=int(input('Please enter your final grade: '))
вместоfinal=eval(input('Please enter your final grade: '))
вы также можете попробоватьfloat
вместоint
, если хотите2. Все та же ошибка 🙁
3. Вы имели в виду: ‘промежуточный экзамен=промежуточный экзамен ()’?
Ответ №1:
Вы написали midterm = midtermgra, а midtermgra-это функция, так что в этом причина
Комментарии:
1. И затем вы используете промежуточный срок в качестве int в semgra=(промежуточный (окончательный*2))/3
Ответ №2:
Вы хотите выполнить функции main()
в двух строках ниже, но опустили круглые скобки, чтобы интерпретатор знал, что вы хотите вызвать эти функции вместо присвоения функции переменной. При последующем использовании midtermgra
для вычисления значение присваивается имени функции, но интерпретатор ожидает int
, таким образом , сообщение об ошибке.
midterm=midtermgra
final=finalgra
должно быть
midterm=midtermgra()
final=finalgra()
Комментарии:
1. Я понял это~Какая глупая ошибка! Спасибо за это