Упражнение 2.9: Сбор данных
В упражнении 2.7 вы написали программу под названием report.py
, которая вычисляла прибыль/убыток портфеля акций. В этом упражнении вы будете начинать ее модифицировать, чтобы получить таблицу такого вида:
Name Shares Price Change
---------- ---------- ---------- ----------
AA 100 9.22 -22.98
IBM 50 106.28 15.18
CAT 150 35.46 -47.98
MSFT 200 20.89 -30.34
GE 95 13.48 -26.89
MSFT 50 20.89 -44.21
IBM 100 106.28 35.84
В этом отчете "Price" - это текущая цена одной акции, а "Change" - это изменение цены акции от начальной цены покупки.
Для генерации вышеуказанного отчета вы сначала захотите собрать все данные, показанные в таблице. Напишите функцию make_report()
, которая принимает список акций и словарь цен в качестве входных данных и возвращает список кортежей, содержащих строки вышеуказанной таблицы.
Добавьте эту функцию в файл report.py
. Вот, как это должно работать, если вы попробуете его интерактивно:
>>> portfolio = read_portfolio('/home/labex/project/portfolio.csv')
>>> prices = read_prices('/home/labex/project/prices.csv')
>>> report = make_report(portfolio, prices)
>>> for r in report:
print(r)
('AA', 100, 9.22, -22.980000000000004)
('IBM', 50, 106.28, 15.180000000000007)
('CAT', 150, 35.46, -47.98)
('MSFT', 200, 20.89, -30.339999999999996)
('GE', 95, 13.48, -26.889999999999997)
...
>>>