【问题标题】:How do I compute a sum with a for-loop and add up the results?如何使用 for 循环计算总和并将结果相加?
【发布时间】:2021-12-05 08:31:19
【问题描述】:

我有以下代码:

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。 我假设这是因为结果相加。

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

【问题讨论】:

    标签: python computation


    【解决方案1】:

    range(0, 3) 是错误的:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 2019-07-08
        • 1970-01-01
        • 2016-12-24
        相关资源
        最近更新 更多