2014-04-06 31 views
0

我不是專家,也不會聲稱是,但這是我一直在努力的一項練習。我在理解如何調出一個元組中的值並將它們相乘時遇到問題。我繼續獲得以下輸出。瞭解如何在Python中對元組中的特定值進行乘法運算

def cost(aBlock): 

cost = portfolio[1]*portfolio[2] 

print(cost) 

output comes out to >>> function cost at 0x0594AD68 

我不清楚爲什麼他們要我用「ABLOCK」參數...

我從哪裏開始這個計劃?

庫存塊。作爲多個屬性的股票塊,包括購買日期,購買價格,股數和股票代碼。我們可以將這些信息記錄在每一塊股票的元組中,並對塊進行一些簡單的操作。

讓我們夢想我們有以下產品組合。

Purchase Date Purchase Price Shares Symbol Current Price 
25 Jan 2001   43.50   25 CAT   92.45 
25 Jan 2001   42.80   50 DD   51.19 
25 Jan 2001   42.10   75 EK   34.87 
25 Jan 2001   37.58   100 GM   37.58 

我們可以代表的股票每塊爲5元組與購買日期,購買價格,股份,股票代碼和當前價格。

portfolio= [ ("25-Jan-2001", 43.50, 25, 'CAT', 92.45), 
("25-Jan-2001", 42.80, 50, 'DD', 51.19), 
("25-Jan-2001", 42.10, 75, 'EK', 34.87), 
("25-Jan-2001", 37.58, 100, 'GM', 37.58) 
] 

開發一個函數,檢查每個區塊,按購買價格乘以份額並確定投資組合的總購買價格。

def cost(aBlock): 
#compute price times shares 
return cost 

開發檢查每個塊,通過目前的價格乘以購買價格股份和,以確定獲得或失去的總量的第二功能。

def roi(aBlock, priceToday): 
    #use cost(aBlock) to get cost 
    #compute priceToday times shares 
return the difference 
+3

可能是向我們展示你的代碼?這看起來像我正在傳遞一個函數而不是調用它 –

回答

2

你有2種方式中的元組訪問值:

  1. 通過指數:shares = block[2]
  2. 通過拆包的所有值:purchase_date, purchase_price, shares, symbol, price = block

鑑於這兩種方式,這裏有兩種可能的解決方案來解決你的問題

def total_purchase_price(stocks): 
    res = [] 
    for block in stocks: 
     shares = block[2] 
     purchase_price = block[1] 
     res += [shares * purchase_price] 
    return res 

def total_wins(stocks): 
    win = 0 
    for block in stocks: 
     purchase_date, purchase_price, shares, symbol, current_price = block 
     win += (purchase_price - current_price) * shares 
    return win 

你會調用這些函數以這種方式:

portfolio= [ ("25-Jan-2001", 43.50, 25, 'CAT', 92.45), 
("25-Jan-2001", 42.80, 50, 'DD', 51.19), 
("25-Jan-2001", 42.10, 75, 'EK', 34.87), 
("25-Jan-2001", 37.58, 100, 'GM', 37.58) 
] 

print total_purchase_price(portfolio) 
print total_wins(portfolio) 
+0

我可以減去每個函數的輸出嗎? TotalGains_Lost = [total_current_price - total_purchase_price] – Ship72

+0

是的,你可以。函數返回值就像任何其他變量:) –

相關問題