@@ -9,9 +9,9 @@ def read_portfolio(filename):
9
9
portfolio = []
10
10
with open (filename , 'rt' ) as f :
11
11
rows = csv .reader (f )
12
- next (rows )
13
- for row in rows :
14
- holding = dict (nome = row [ 0 ], acoes = int ( row [ 1 ]), preco = float ( row [ 2 ] ))
12
+ cabecalho = next (rows )
13
+ for number_row , row in enumerate ( rows , start = 1 ) :
14
+ holding = dict (zip ( cabecalho , row ))
15
15
portfolio .append (holding )
16
16
return portfolio
17
17
@@ -34,25 +34,25 @@ def ganhos_perda(portfolio, acoes):
34
34
diferencia_total = 0.0
35
35
print ("Nome\t Preco Compra\t Quantidade\t Total da Compra\t \t Preco de Venda\t \t Total de Venda\t \t Ganho/Perda" )
36
36
for acao in portfolio :
37
- valor_acao_compra = acao ["acoes " ] * acao ["preco " ]
38
- valor_acao_atual = acao ["acoes " ] * acoes [acao ["nome " ]]
37
+ valor_acao_compra = acao ["shares " ] * acao ["price " ]
38
+ valor_acao_atual = acao ["shares " ] * float ( acoes [acao ["name " ]])
39
39
diferencia = valor_acao_atual - valor_acao_compra
40
40
diferencia_total += diferencia
41
- print (f'{ acao ["nome " ]:<4s} { acao ["preco " ]:^16.2f} { acao ["acoes " ]:^16d} { valor_acao_compra :^18.2f} { acoes [acao ["nome " ]]:^26.2f} { valor_acao_atual :^21.2f} { diferencia :^21.2f} ' )
41
+ print (f'{ acao ["name " ]:<4s} { acao ["price " ]:^16.2f} { acao ["shares " ]:^16d} { valor_acao_compra :^18.2f} { acoes [acao ["name " ]]:^26.2f} { valor_acao_atual :^21.2f} { diferencia :^21.2f} ' )
42
42
print (f"Total de ganhos/perdas: { diferencia_total :>97.2f} " )
43
43
44
44
45
45
def make_report (portfolio , acoes ):
46
46
lista_acoes = []
47
47
for linha in portfolio :
48
- diferencia_preco = acoes [linha ["nome " ]] - linha ["preco" ]
49
- lista_acoes .append ((linha ["nome " ], linha ["acoes " ], acoes [linha ["nome " ]], diferencia_preco ))
48
+ diferencia_preco = acoes [linha ["name " ]] - float ( linha ["price" ])
49
+ lista_acoes .append ((linha ["name " ], linha ["shares " ], acoes [linha ["name " ]], diferencia_preco ))
50
50
return lista_acoes
51
51
52
52
53
- report = make_report (read_portfolio ("Work\\ Data\\ portfolio .csv" ), read_prices ("Work\\ Data\\ prices.csv" ))
53
+ report = make_report (read_portfolio ("Work\\ Data\\ portfoliodate .csv" ), read_prices ("Work\\ Data\\ prices.csv" ))
54
54
cabecalho = ("Name" , "Shares" , "Price" , "Change" )
55
55
print (f'{ cabecalho [0 ]:>10s} { cabecalho [1 ]:>10s} { cabecalho [2 ]:>10s} { cabecalho [3 ]:>10s} ' )
56
56
print ("---------- " * 4 )
57
57
for name , shares , price , change in report :
58
- print (f'{ name :>10s} { shares :>10d} { price :>10.2f} { change :>10.2f} ' )
58
+ print (f'{ name :>10s} { int ( shares ) :>10d} { price :>10.2f} { change :>10.2f} ' )
0 commit comments