Ожидаемый тип int получил значение в Pycharm - PullRequest
0 голосов
/ 29 августа 2018
    sub1=int(input("Enter the marks of the first subject: "))
    sub2=int(input("Enter the marks of the second subject: "))
    sub3=int(input("Enter the marks of the third subject: "))
    sub4=int(input("Enter the marks of the fourth subject: "))
    sub5=int(input("Enter the marks of the fifth subject: "))
    avg=(sub1+sub2+sub3+sub4+sub5)/5
    if(avg>=90):
      print("Grade A:")
    elif(avg>=80&avg<90):
      print("Grade B:")
    elif(avg>=70&avg<80):
      print("Grade C:")
    elif(avg>=60&avg<70):
      print("Grade D:")
    else:
      print("Grade F:")

1 Ответ

0 голосов
/ 30 августа 2018

Проблема в том, что & имеет более высокий приоритет, чем операторы сравнения (>= / <), поэтому avg>=80&avg<90 анализируется как avg>=(80&avg)<90. Затем он пытается сделать поразрядным & между двумя значениями, но безуспешно.

Вам лучше написать это как 1011 *.

avg>=70 and avg<80

(and является оператором короткого замыкания и имеет меньший приоритет) или

70 <= avg < 80
...