zoukankan      html  css  js  c++  java
  • python练习3

    import unittest
    
    
    class Student(object):
        def __init__(self, name, score):
                self.name = name
                self.score = score
    
    
        def get_grade(self):
            if self.score > 100 or self.score < 0:
                raise ValueError
            if self.score >= 80:
                return 'A'
            if self.score >= 60:
                return 'B'
            return 'C'
    
    
    
    
    class TestStudent(unittest.TestCase):
    
    
        def test_80_to_100(self):
            s1 = Student('Bart', 80)
            s2 = Student('Lisa', 100)
            self.assertEqual(s1.get_grade(), 'A')#
            self.assertEqual(s2.get_grade(), 'A')
    
    
        def test_60_to_80(self):
            s1 = Student('Bart', 60)
            s2 = Student('Lisa', 79)
            self.assertEqual(s1.get_grade(), 'B')
            self.assertEqual(s2.get_grade(), 'B')
    
    
        def test_0_to_60(self):
            s1 = Student('Bart', 0)
            s2 = Student('Lisa', 59)
            self.assertEqual(s1.get_grade(), 'C')
            self.assertEqual(s2.get_grade(), 'C')
    
    
        def test_invalid(self):
            s1 = Student('Bart', -1)
            s2 = Student('Lisa', 101)
            with self.assertRaises(ValueError):
                s1.get_grade()#
            with self.assertRaises(ValueError):
                s2.get_grade()
    
    
    if __name__ == '__main__':
        unittest.main()
    
    #编写文档测试
    def fact(n):
        '''
        Calculate 1*2*...*n
    
    
        >>> fact(1)
        1
        >>> fact(10)
        3628800
        >>> fact(-1)
        Traceback (most recent call last):
            ...
        ValueError
        '''
        if n < 1:
            raise ValueError()
        if n == 1:
            return 1
        return n * fact(n - 1)
    
    
    
    
    if __name__=='__main__':
        import doctest
        doctest.testmod()
  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442960.html
Copyright © 2011-2022 走看看