Python:TypeError:不能将序列乘以'float'类型的非int

时间:2012-09-24 18:42:26

标签: python

我是新手程序员,试图制作一个解析xml并将其内容粘贴到频道上的irc机器人。通常我会在谷歌上找到我的答案,但这次我找不到答案。

q0tag = dom.getElementsByTagName('hit')[0].toxml()
q0 = q0tag.replace('<hit>','').replace('</hit>','')

q1 = (q0 * 1.2)

当我试图乘以q0时,它总是显示

TypeError: can't multiply sequence by non-int of type 'float'.

我试图让q0 int或float但它只是犯了另一个错误

AttributeError: 'NoneType' object has no attribute 'replace'

q0值是一个没有小数的圆数。

2 个答案:

答案 0 :(得分:15)

你的q0值仍然是一个字符串。这基本上就是你在做的事情:

>>> q0 = '3'
>>> q1 = (q0 * 1.2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'

要解决此问题,请先将字符串转换为数字:

>>> q1 = (float(q0) * 1.2)
>>> q1
3.5999999999999996

您可能还想查看lxmlBeautifulSoup模块以解析XML。

答案 1 :(得分:1)

Toxml()生成字符串(请参阅例如http://docs.python.org/library/xml.dom.minidom.html)。 Replace也会生成一个字符串,因此q0是一个字符串。