首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试遍历列表,但不断收到错误

尝试遍历列表,但不断收到错误
EN

Stack Overflow用户
提问于 2014-09-08 10:42:29
回答 2查看 103关注 0票数 0

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

代码语言:javascript
复制
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

以下是错误代码:

代码语言:javascript
复制
self.underlyingPrice = float(args[0])
TypeError: float() argument must be a string or a number
EN

回答 2

Stack Overflow用户

发布于 2014-09-08 10:58:35

您正在将c设置为浮点型:

代码语言:javascript
复制
c = 0.0

然后,在for循环中,您将其作为dict进行访问:

代码语言:javascript
复制
c[i] = mibian.BS([price, 100, 0, 5], volatility=20)

然后,在for循环之后,您可以像访问对象一样访问它:

代码语言:javascript
复制
print c.callPrice

这段代码不可能正常工作。请更新您的问题以包括您想要完成的任务。

编辑:从阅读你对我的回答的评论来看,这就是我认为你想要的。注意:c是由mibian.BS返回的对象字典。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2017-03-24 19:16:43

它应该是

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25716786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档