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

How do I compute a sum with a for-loop and add up the results?

我有以下代码:

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)

引用出的代码returns正确结果:-174,5。 for 循环是相同的等式,但在不同的列表项上循环,但它 returns 364,42。 我假设这是因为结果相加。

请帮我找出错误,谢谢!

range(0, 3)是错误的:

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

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

但市场有 4 件商品。 所以使用 range(0, 4)range(0, len(market))