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

2024-04-29 00:48:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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值是一个不带小数的整数。


Tags: 答案内容粘贴ircbotxmlfloat频道
2条回答

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

你的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

您可能还想查看用于解析XML的lxmlBeautifulSoup模块。

相关问题 更多 >