Python练习:成绩划分
Python练习:成绩划分
题目
完成此函数,使其找到传递给它的三个分数的平均值,并返回与该成绩相关联的字母值
成绩分数 | 字母等级 |
---|---|
90 <= score <= 100 | 'A' |
80 <= score < 90 | 'B' |
70 <= score < 80 | 'C' |
60 <= score < 70 | 'D' |
0 <= score < 60 | 'F' |
测试值都在 0 到 100 之间。无需检查负值或大于 100 的值。
代码
def get_grade(s1, s2, s3):
avg = (s1 + s2 + s3) / 3
if 90 <= avg <= 100:
return 'A'
elif 80<= avg < 90:
return 'B'
elif 70 <= avg < 80:
return 'C'
elif 60 <= avg < 70:
return 'D'
else:
return 'F'
知识点:
变量与算术运算:在这个函数中,首先创建了一个名为
avg
的变量,该变量存储了三个分数的平均值。这涉及到了基本的算术运算(加法和除法)。条件语句:函数的主要部分是一个
if-elif-else
结构,它是Python中的条件语句。这个结构允许程序根据某个条件是否满足来决定执行哪部分代码。在这个例子中,我们根据平均分的值来决定返回哪个等级。比较运算符:在
if
和elif
语句中,我们使用了比较运算符(如<=
和<
)来比较平均分和等级的阈值。返回语句:
return
语句用于从函数中返回一个值。在这个函数中,我们返回了一个字符串,该字符串表示了对应的等级。函数定义:
def
关键字用于定义一个函数。在这个例子中,我们定义了一个名为get_grade
的函数,该函数接受三个参数(s1
、s2
和s3
)并返回一个值(等级)。
测试
import codewars_test as test
from solution import get_grade
@test.describe("Grade book")
def fixed_tests():
@test.it('should return an A')
def a_test_case():
test.assert_equals(get_grade(95, 90, 93), "A", "get_grade(95, 90, 93)")
test.assert_equals(get_grade(100, 85, 96), "A", "get_grade(100, 85, 96)")
test.assert_equals(get_grade(92, 93, 94), "A", "get_grade(92, 93, 94)")
test.assert_equals(get_grade(100, 100, 100), "A", "get_grade(100, 100, 100)")
@test.it("should return a B")
def b_test_case():
test.assert_equals(get_grade(70, 70, 100), "B", "get_grade(70, 70, 100)")
test.assert_equals(get_grade(82, 85, 87), "B", "get_grade(82, 85, 87)")
test.assert_equals(get_grade(84, 79, 85), "B", "get_grade(84, 79, 85)")
@test.it("should return a C")
def c_test_case():
test.assert_equals(get_grade(70, 70, 70), "C", "get_grade(70, 70, 70)")
test.assert_equals(get_grade(75, 70, 79), "C", "get_grade(75, 70, 79)")
test.assert_equals(get_grade(60, 82, 76), "C", "get_grade(60, 82, 76)")
@test.it("should return a D")
def d_test_case():
test.assert_equals(get_grade(65, 70, 59), "D", "get_grade(65, 70, 59)")
test.assert_equals(get_grade(66, 62, 68), "D", "get_grade(66, 62, 68)")
test.assert_equals(get_grade(58, 62, 70), "D", "get_grade(58, 62, 70)")
@test.it("should return an F")
def f_test_case():
test.assert_equals(get_grade(44, 55, 52), "F", "get_grade(44, 55, 52)")
test.assert_equals(get_grade(48, 55, 52), "F", "get_grade(48, 55, 52)")
test.assert_equals(get_grade(58, 59, 60), "F", "get_grade(58, 59, 60)")
test.assert_equals(get_grade(0, 0, 0), "F", "get_grade(0, 0, 0)")
License:
CC BY 4.0