Python3 - while id> Stop: TypeError: неупорядоченные типы: str ()> int () - PullRequest
0 голосов
/ 28 сентября 2018

Здравствуйте. Я пытаюсь запустить программу, которая возвращает оценки учащихся и их среднее значение.ТАКЖЕ Я ЗНАЮ, ЧТО Я ОСНОВНОЙ ПРОГРАММНИК ПЕРВОГО ГОДА.Я ВЕРОЯТНО УЖАСНО В ВЕРОЯТНО.ОДНАКО ПОМОГИТЕ ЛУЧШЕМУ, ЧТО ВЫ МОЖЕТЕ ЭТО БЫТЬ, БОЛЬШОЙ ЦЕНИТЬ.СПАСИБО.

Ошибка говорит о том, что в строке 49.

говорит, что "

line 49, in <module>
 while ids > STOP:
TypeErrorL unorderable types: str() > int()

XXXX

 def assigngrades(scores):
     avg = sum(scores)/len(scores)
     print(avg)


     for val in scores:
      if val > avg + 10:
       grade = 'A'
      elif val > avg + 5:
       grade = 'B'
      elif val > avg -5:
        grade = 'C'
      elif val > avg - 10:
       grade = 'D'
      else:
       grade = 'F'
      grades.append(grade)
     print("in assigngrades, grades: ",grades)
     return grades



    def printsummary(grades, ave):
     print('ID        Score        Average        Grade')
     print('===========================================')
     print( )


     for val in range(len(ids)):
      print('val', val)
      print(ids,' ',scores, ' ', grades)
     return

    #main
    ids = []
    scores = []
    grades = []
    STOP = 0


    ids = input("Enter an ID:")
    while ids > STOP:
     ids.append(ids)
     score = eval(input("Enter a score:"))
     scores.append(score)
     id = (input("Enter an ID number, 0 to STOP:"))

     grades = assigngrades(scores)
     print("after while loop")
     print("Ids:", ids, "Scores:", scores, "Grades:", grades)
     printsummary(grades, avg)

Тем не менее, язапутался в том, в чем проблема. Я ценю ваше время и помогаю посмотреть на это. Большое вам спасибо. Да, я знаю, что я глупый.

1 Ответ

0 голосов
/ 28 сентября 2018

Функция input() возвращает строку, поэтому вы должны преобразовать ее в целое число с int(), чтобы вы могли сравнить ее значение с другим целым числом.Вам следует также назвать переменную, в которой хранится пользовательский ввод, что-то отличное от ids, поскольку вы уже определили его как список:

ids = []
scores = []
grades = []
STOP = 0

id = int(input("Enter an ID:"))
while id > STOP:
    ids.append(id)
    score = eval(input("Enter a score:"))
    scores.append(score)

    grades = assigngrades(scores)
    print("after while loop")
    print("Ids:", ids, "Scores:", scores, "Grades:", grades)
    printsummary(grades, avg)
...