首页 > 解决方案 > 平均公式

问题描述

我正在为学校创建一个分数表,代码如下:

Sub1 = input ('Enter Marks of English: ')
Sub2 = input ('Enter Marks of Urdu: ')
Sub3 = input ('Enter Marks of Science: ')
Sub4 = input ('Enter Marks of Maths: ')
Sub5 = input ('Enter Marks of Islamiat: ')
avg = (Sub1+Sub2+Sub3+Sub4+Sub5)
Sub1 = int(Sub1)
Sub2 = int(Sub2)
Sub3 = int(Sub3)
Sub4 = int(Sub4)
Sub5 = int(Sub5)
if avg >90 or (avg <80):
    print("Grade: A")
elif avg > 79 or (avg < 61):
    print("Grade: B")
elif avg > 60 or (avg < 40):
    print("Grade: C")
elif avg > 40 or (avg < 39):
    print("Grade: D")
else:
    print("Grade: F")

但是在取平均值时会出错,如下所示

TypeError
Traceback (most recent call last)
<ipython-input-25-68aee6e8df0f> in <module>
     12 Sub5 = int(Sub5)
     13
---> 14 if avg >90 or (avg <80):
     15     print("Grade: A")
     16 elif avg > 79 or (avg < 61):
TypeError: '>' not supported between instances of 'str' and 'int'

请帮助解决明天必须提交我的作业。

标签: pythonpython-3.7

解决方案


当您阅读用户输入时,您的变量是str. 因此,您需要在添加之前将您的 Subn 变量转换为 int 。代替:

avg = (Sub1+Sub2+Sub3+Sub4+Sub5)
Sub1 = int(Sub1)
Sub2 = int(Sub2)
Sub3 = int(Sub3)
Sub4 = int(Sub4)
Sub5 = int(Sub5)

为了

Sub1 = int(Sub1)
Sub2 = int(Sub2)
Sub3 = int(Sub3)
Sub4 = int(Sub4)
Sub5 = int(Sub5)
avg = (Sub1+Sub2+Sub3+Sub4+Sub5)

推荐阅读