2016-02-25 62 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

谢谢!有用 –