2016-02-25 63 views
0

你好,我想要做的是這個。得到的值沒有''

from googlefinance import getQuotes 

def live_price(symbol): 
    price = getQuotes(symbol)[0].values()[3] 
    print price 

如果我運行此,它會給我我live_price的FUNC進入某股票的價格。但我想要做一些計算是這樣的:

live_price('A')+live_price('B') 

但由於print不給我的價格作爲計算的東西「輸出」我無法用這些數字。

所以我只是在最後一行嘗試price而不是print price。 然後它給我一個特定股票的價格作爲輸出,以便我可以用它來計算。但問題是數字是一個字符串,它不會正確計算。

我應該怎麼做才能將價格作爲輸出,以便我可以使用該數字來計算我想要計算的事物?

+2

返回值,uhm,'return price'? – user3159253

+1

並以float形式包裝價格,如'return float(price)'中所示。 –

回答

4

聽起來像是你有一個'string'。你想一個數字,所以它轉換成一個floatDecimal

In [1]: my_str = '1.35' 

In [2]: my_str_as_a_number = float(my_str) 

In [3]: my_str_as_a_number 
Out[3]: 1.35 

In [4]: my_str_as_a_number + 1 
Out[4]: 2.35 

float是內置的,但如果你想Decimal你需要先導入它。

In [5]: from decimal import Decimal 

In [6]: my_str_as_a_decimal = Decimal(my_str) 

In [7]: my_str_as_a_decimal + 1 
Out[7]: Decimal('2.35') 

您可以轉換Decimalfloat爲好。

In [8]: float(_) 
Out[8]: 2.35 

使用小數在使用浮點的優勢是小數避免因浮點表示的不精確性質的一些常見gotchas

+0

很好的參考,但我真的很想知道有什麼好處。你可以舉一些例子,或者在你引用的頁面/書籍中指出其中的一些例子嗎? –

+0

查看官方[Python十進制文檔]的第一個鏈接(https://docs.python.org/2/library/decimal.html)。它將優點縮減爲幾個重點,並且通常更具可讀性和簡潔性@RaduIonescu –

+0

這比浮點運算的烹飪書更容易理解:) –

0

變換的字符串到真正的價值與

return float(price) 
+0

真的很簡單!非常感謝! –

+0

@MinjunKim不要忘了點擊兩位鍊金師得分附近的複選框來接受他的回答:) –

0

使用浮動和返回價格而不是打印。

from googlefinance import getQuotes 

def live_price(symbol): 
    price = getQuotes(symbol)[0].values()[3] 
    return float(price) 

x = live_price('A')+live_price('B') 
print(x) 
+0

謝謝!有用 –