Kodomo

Пользователь

Самодокументация и тесты

Конспект

План рассказа

Контрольная работа

  1. Опишите функцию enumerate, которая делает то же самое, что и встроенная функция enumerate, не пользуясь встроенной версией enumerate.

  2. Опишите функцию pair_sums, которая получает на вход список чисел и возвращает список попарных сумм соседних элементов списка. Т.е. если на вход подали список [1, 2, 3, 4], то она вернёт [3, 5, 7]

  3. Если питону доступен класс Vector, который мы описывали раньше, что он ответит на такой вопрос:

       1  >>> pair_sums([Vector(1,2), Vector(2,1), Vector(1,1)])
    

Мы можем считать, что класс Vector описан так:

   1 class Vector(object):
   2     def __init__(self, x, y):
   3         self.x, self.y = x, y
   4     def __add__(self, other):
   5         return Vector(self.x + other.x, self.y + other.y)
   6     def __sub__(self, other):
   7         return Vector(self.x - other.x, self.y - other.y)
   8     def __repr__(self):
   9         return "Vector(%s,%s)" % (self.x, self.y)

Задание

  1. Доделайте задания занятий 2, 3, 4 (!!)
  2. Допишите документацию к тем местам программы, где она осмысленна
  3. Среди документации в качестве примеров сделайте тесты

Подсказки

Примерно так выглядит приличный питонский модуль:

   1 """Module description as one line
   2 
   3 More thorough module description.
   4 
   5 A few examples, better even doctests.
   6 """
   7 import doctest
   8 
   9 if __name__ == "__main__":
  10     doctest.testmod()