1.1 KiB
1.1 KiB
Exercise 3.1 - Solution
# stock.py
class Stock:
def __init__(self, name, shares, price):
self.name = name
self.shares = shares
self.price = price
def cost(self):
return self.shares * self.price
def sell(self, nshares):
self.shares -= nshares
def read_portfolio(filename):
'''
Read a CSV file of stock data into a list of Stocks
'''
import csv
= []
portfolio with open(filename) as f:
= csv.reader(f)
rows = next(rows)
headers for row in rows:
= Stock(row[0], int(row[1]), float(row[2]))
record
portfolio.append(record)return portfolio
def print_portfolio(portfolio):
'''
Make a nicely formatted table showing stock data
'''
print('%10s %10s %10s' % ('name', 'shares', 'price'))
print(('-'*10 + ' ')*3)
for s in portfolio:
print('%10s %10d %10.2f' % (s.name, s.shares, s.price))
if __name__ == '__main__':
= read_portfolio('Data/portfolio.csv')
portfolio print_portfolio(portfolio)