Для выполнения задания найди ссылку-приглашение в онлайн чате, получи доступ к репозиторию с файлом-заготовкой и заполни пропуски в нём. Фиксируй изменения (делай коммиты) после решения каждой задачи. Оставь название файла неизменным, иначе робот-проверятель не найдёт твои ответы. Отправить решения на GitHub нужно до истечения установленного срока. |
Вопрос 1
Создай метод next
класса Fib
. В этом классе value
— это число Фибоначчи. Метод next
возвращает экземпляр Fib
, в котором value
— следующее число Фибоначчи. Метод next
должен выполняться константное время.
Заметь, что в доктестах ничего не печатается. Каждый вызов .next()
возвращает экземпляр Fib
, который отображается в интерактивной сессии как значение (посмотри метод __repr__).
Попробуй в методе next сохранять предыдущее значение в дополнительном атрибуте экземпляра.
|
class Fib():
"""Число Фибоначчи.
>>> start = Fib()
>>> start
0
>>> start.next()
1
>>> start.next().next()
1
>>> start.next().next().next()
2
>>> start.next().next().next().next()
3
>>> start.next().next().next().next().next()
5
>>> start.next().next().next().next().next().next()
8
>>> start.next().next().next().next().next().next() # Проверка, что start не изменился
8
"""
def __init__(self, value=0):
self.value = value
def next(self):
"*** ТВОЙ КОД ЗДЕСЬ ***"
def __repr__(self):
return str(self.value)
Вопрос 2
Создай класс VendingMachine
, который описывает автомат по продаже некоторого товара. Экземпляр класса VendingMachine
возвращает строки в ответ на запросы различных действий. Посмотри на доктесты чтобы подразобраться.
class VendingMachine:
"""Торговый автомат, продающий некоторый товар по некоторой цене.
>>> v = VendingMachine('яблоко', 10)
>>> v.vend()
'Товара нет в наличии.'
>>> v.restock(2)
'Количество товара «яблоко»: 2'
>>> v.vend()
'Нужно дополнительно внести 10 ₽.'
>>> v.deposit(7)
'Доступно: 7 ₽'
>>> v.vend()
'Нужно дополнительно внести 3 ₽.'
>>> v.deposit(5)
'Доступно: 12 ₽'
>>> v.vend()
'Получите яблоко и сдачу 2 ₽.'
>>> v.deposit(10)
'Доступно: 10 ₽'
>>> v.vend()
'Получите яблоко.'
>>> v.deposit(15)
'Товара нет в наличии. Вот твои деньги — 15 ₽.'
>>> w = VendingMachine('лимонад', 2)
>>> w.restock(3)
'Количество товара «лимонад»: 3'
>>> w.restock(3)
'Количество товара «лимонад»: 6'
>>> w.deposit(2)
'Доступно: 2 ₽'
>>> w.vend()
'Получите лимонад.'
"""
"*** ТВОЙ КОД ЗДЕСЬ ***"
Возможно, тебе пригодятся правила форматирования строк в Python. Например:
|