【问题标题】:Python3 - while ids > Stop: TypeError: unorderable types: str()> int()Python3 - 而 ids > Stop: TypeError: unorderable types: str()> int()
【发布时间】:2019-03-03 23:46:25
【问题描述】:

您好,我正在尝试运行一个可以返回学生成绩和平均成绩的程序。我也知道我是一个基本的无脑一年级程序员。我可能会很可怕。但是,请尽您所能提供帮助,我们将不胜感激。 谢谢。

错误显示在第 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)

不过,我对问题出在哪里感到困惑。感谢您抽出宝贵时间并帮助查看此问题。非常感谢你。是的,我知道我很愚蠢。

【问题讨论】:

    标签: python python-3.x for-loop error-handling while-loop


    【解决方案1】:

    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)
    

    【讨论】:

    • 谢谢你,我明白你在说什么并实施了。但是,它现在返回相同的错误,但显示“TYPEERROR: unorderable types: list() > int()”
    • 我很抱歉这是多余的。感谢您的帮助
    • 在重命名重复变量名后,我忘记将 while 条件中的 ids 编辑为 id。现在再试一次。
    • 非常感谢它让我更进一步。它现在只是说“NameError:名称'avg'未定义”。但我感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2017-12-08
    • 2018-07-23
    相关资源
    最近更新 更多