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'

知识点:

  1. 变量与算术运算:在这个函数中,首先创建了一个名为 avg 的变量,该变量存储了三个分数的平均值。这涉及到了基本的算术运算(加法和除法)。

  2. 条件语句:函数的主要部分是一个 if-elif-else 结构,它是Python中的条件语句。这个结构允许程序根据某个条件是否满足来决定执行哪部分代码。在这个例子中,我们根据平均分的值来决定返回哪个等级。

  3. 比较运算符:在 if 和 elif 语句中,我们使用了比较运算符(如 <= 和 <)来比较平均分和等级的阈值。

  4. 返回语句return 语句用于从函数中返回一个值。在这个函数中,我们返回了一个字符串,该字符串表示了对应的等级。

  5. 函数定义def 关键字用于定义一个函数。在这个例子中,我们定义了一个名为 get_grade 的函数,该函数接受三个参数(s1s2 和 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)")

文章作者: waino
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 VLLLO.COM
技术分享 Python coding
喜欢就支持一下吧