如何使用for循环计算和结果相加?



我有以下代码:

aapl = [10, 154.12]
goog = [ 2, 812.56]
tsla = [12, 342.12]
fb   = [18, 209.0]
portfolio = [ aapl, goog, tsla, fb ]
market = [ 198.84, 1217.93, 267.66, 179.06 ]
print(portfolio[3][0])
# pnl=((market[0]-portfolio[0][1])*portfolio[0][0])+((market[1]-portfolio[1][1])*portfolio[1][0])+((market[2]-portfolio[2][1])*portfolio[2][0])+((market[3]-portfolio[3][1])*portfolio[3][0])
# print(pnl)

total_pnl = 0
for n in range(0, 3):
pnl=(market[n]-portfolio[n][1])*portfolio[n][0]
total_pnl += pnl
print(total_pnl)

引号外的代码返回正确的结果:-174,5。for循环是相同的等式,但循环遍历不同的列表项,但它返回364,42。我想这是因为结果的叠加。

请帮我找出我的错误,谢谢!

range(0, 3)是错误的:

它返回列表[0, 1, 2],因此您传入的最后一个数字不会用作索引。试试range(0, 4)range(0, len(market))

range(0, 3)是错误的,它只返回0、1、2。

但是市场有4个项目。所以使用range(0, 4)range(0, len(market))

最新更新