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