1.0 KiB
1.0 KiB
Exercise 1.4 - Solution
(a) Defining a function
# pcost.py
def portfolio_cost(filename):
= 0.0
total_cost with open(filename) as f:
for line in f:
= line.split()
fields = int(fields[1])
nshares = float(fields[2])
price = total_cost + nshares * price
total_cost return total_cost
print(portfolio_cost('Data/portfolio.dat'))
(b) Adding some error handling
# pcost.py
def portfolio_cost(filename):
= 0.0
total_cost with open(filename) as f:
for line in f:
= line.split()
fields try:
= int(fields[1])
nshares = float(fields[2])
price = total_cost + nshares*price
total_cost
# This catches errors in int() and float() conversions above
except ValueError as e:
print("Couldn't parse:", repr(line))
print("Reason:", e)
return total_cost
print(portfolio_cost('Data/portfolio3.dat'))