如何使用 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))
我有以下代码:
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))