Skip to content
Advertisement

Python : TypeError: can’t multiply sequence by non-int of type ‘float’

I am newbie programmer trying to make an irc bot that parse xml and paste its content on a channel. Usually i find my answer on google, but this time i can’t find my answer.

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

q1 = (q0 * 1.2)

when i’m trying to multiply q0 it always showing

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

Im trying to make q0 int or float but it just make another error

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

q0 value is a round number without decimal.

Advertisement

Answer

Your q0 value is still a string. This is basically what you’re doing:

>>> 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'

To fix it, convert the string to a number first:

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

You might also want to look into the lxml and BeautifulSoup modules for parsing XML.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement