Python 试图遍历一个列表,但我一直收到一个错误

Python 试图遍历一个列表,但我一直收到一个错误,python,finance,mibian,Python,Finance,Mibian,我试图得到不同股票价格的期权买入价。我一直收到一个错误,指出float()参数必须是字符串或数字。代码如下: import mibian price = [100,101,102,103,104] c = 0.0 for i in price: #BS([underlyingPrice, strikePrice, interestRate, daysToExpiration], volatility=x, callPrice=y, putPrice=z) c[i] =

我试图得到不同股票价格的期权买入价。我一直收到一个错误,指出float()参数必须是字符串或数字。代码如下:

import mibian

price = [100,101,102,103,104]




c = 0.0
for i in price:
    #BS([underlyingPrice, strikePrice, interestRate, daysToExpiration], volatility=x, callPrice=y, putPrice=z)
    c[i] = mibian.BS([price, 100, 0,5], volatility=20)
print c.callPrice
以下是错误代码:

self.underlyingPrice = float(args[0])
TypeError: float() argument must be a string or a number

您正在将
c
设置为浮点:

c = 0.0
然后在for循环中,您将作为dict访问它:

c[i] = mibian.BS([price, 100, 0, 5], volatility=20)
在for循环之后,您将像访问对象一样访问它:

print c.callPrice
这段代码不可能工作。请更新您的问题,以包括您想要完成的内容

编辑:通过阅读您对我答案的评论,我认为这是您想要的。注意:
c
是由
mibian.BS
返回的对象字典

import mibian

price = [100,101,102,103,104]
c = {}
for i in price:
    c[i] = mibian.BS([price, 100, 0,5], volatility=20)
    print c[i].callPrice
应该是


c[i]=mibian.BS([price[i],100,0,5],volatility=20)

在尝试将参数[0]转换为浮点之前,请尝试打印出参数。错误消息告诉您,
args[0]
不是可以转换为浮点的东西。它可能是一个列表或其他东西(尽管我们无法从您的问题中真正分辨出来)。
args
未定义。请发布
args
我假设args是price=[100101102103104]这就是它的名称…c=mibian.BS([100100,0,5],volatility=20)print c.callPrice。。。这是它返回的值:0.933831922852。。。我想对列表中的每个价格都这样做。is
c
等于
0.933831922852
或者is
c.callPrice
等于
0.933831922852
?它等于c.callPrice。