class student(): def __init__(self,score): self.score=score def grade(self): if self.score>=90: print(4.0) elif self.score>=86: print(3.7) elif self.score>=83: print(3.3) elif self.score>=80: print(3.0) elif self.score>=76: print(2.7) elif self.score>=73: print(2.3) elif self.score>=70: print(2.0) elif self.score>=66: print(1.7) elif self.score>=63: print(1.3) elif self.score>=60: print(1.0) else: print(0) sc=int(input()) print(stu.grade())为什么这里会打印出None来!!!
时间: 2023-11-27 15:51:29 浏览: 70
学生成绩管理系统python.docx
你的代码中存在一个问题,即在 `print(stu.grade())` 中,你使用了 `stu` 而不是 `student`。另外,你也没有先创建一个学生对象,所以你需要先创建一个学生对象并将其分数传递给对象。修改后的代码如下:
```
class Student():
def __init__(self, score):
self.score = score
def grade(self):
if self.score >= 90:
return 4.0
elif self.score >= 86:
return 3.7
elif self.score >= 83:
return 3.3
elif self.score >= 80:
return 3.0
elif self.score >= 76:
return 2.7
elif self.score >= 73:
return 2.3
elif self.score >= 70:
return 2.0
elif self.score >= 66:
return 1.7
elif self.score >= 63:
return 1.3
elif self.score >= 60:
return 1.0
else:
return 0
score = int(input("请输入学生成绩:"))
stu = Student(score)
print(stu.grade())
```
这样就能够正确输出学生的成绩了。注意,我修改了 `grade` 方法中的 `print` 语句为 `return` 语句,并在 `print(stu.grade())` 中使用了 `return` 返回的成绩。
阅读全文