Skip to content

Commit 723ebc9

Browse files
committed
report.py enhanced
1 parent e65954e commit 723ebc9

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

‎Work/report.py‎

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,30 @@
55
from pprint import pprint
66

77
def read_portfolio(filename):
8-
portfolio = []
8+
select = ['name', 'shares', 'price']
99

1010
f = open(filename)
1111
rows = csv.reader(f)
1212
headers = next(rows)
13+
indices = [ headers.index(colname) for colname in select ]
1314

14-
for rowno, row in enumerate(rows):
15-
record = dict(zip(headers, row))
16-
try:
17-
stocks = {
18-
'name' : record['name'],
19-
'shares' : int(record['shares']),
20-
'price' : float(record['price'])
21-
}
22-
portfolio.append(stocks)
23-
except ValueError as e:
24-
print(f"Row {rowno} Couldn't convert: {row}")
15+
try:
16+
portfolio = [ { colname: row[index] for colname, index in zip(select, indices) } for row in rows ]
17+
except ValueError as e:
18+
print(f"Row {rowno} Couldn't convert: {row}")
19+
20+
#for rowno, row in enumerate(rows):
21+
# record = dict(zip(headers, row))
22+
# try:
23+
#stocks = {
24+
# 'name' : record['name'],
25+
# 'shares' : int(record['shares']),
26+
# 'price' : float(record['price'])
27+
#}
28+
#portfolio.append(stocks)
29+
30+
#except ValueError as e:
31+
# print(f"Row {rowno} Couldn't convert: {row}")
2532

2633
return portfolio
2734

@@ -68,11 +75,11 @@ def make_report(portfolio, prices):
6875

6976
#Calculating Gaing/Loss
7077
for s in portfolio:
71-
portfolio_with_change.append((s['name'], s['shares'], prices[s['name']] , prices[s['name']] - s['price']))
78+
portfolio_with_change.append((s['name'], s['shares'], prices[s['name']] , float(prices[s['name']]) - float(s['price'])))
7279

7380
#Printing table
7481
print('%10s %10s %10s %10s' % headers)
7582
print(separator * len(headers))
7683
for name, shares, prices, change in portfolio_with_change:
7784
prices_s = '$' + str(prices)
78-
print(f'{name:>10s} {shares:>10d} {prices_s:>10s} {change:>10.2f}')
85+
print(f'{name:>10s} {shares:>10s} {prices_s:>10s} {change:>10.2f}')

0 commit comments

Comments
 (0)