This question already has an answer here:
-
How can I concatenate str and int objects?
3 answers
I get this error when trying to take an integer and prepend \"b\" to it, converting it into a string:
File \"program.py\", line 19, in getname
name = \"b\" + num
TypeError: Can\'t convert \'int\' object to str implicitly
That\'s related to this function:
num = random.randint(1,25)
name = \"b\" + num
name = \'b\' + str(num)
or
name = \'b%s\' % num
as S.Lott notes, the mingle operator \'%\' is deprecated for Python 3 and up. And I stole the name \"mingle\" from INTERCAL but that\'s how I talk about it and wanted to see it in print at least once before - like the dodo - it vanishes from the face of the earth.
Python won\'t automatically convert types in the way that languages such as JavaScript or PHP do.
You have to convert it to a string, or use a formatting method.
name=\"b\"+str(num)
or printf style formatting...
name=\"b%s\" % (num,)
or the new .format string method
name=\"b{0}\".format(num)
Yeah, python doesn\'t having implicit int to string conversions.
try str(num)
instead
Python 3.6 has f-strings where you can directly put the variable names without the need to use format
:
>>> num=12
>>> f\"b{num}\"
\'b12\'
name = \"b{0:d}\".format( num )
Correct answers have already been given but I want to chime in and say that you should always use str(var) every time you intend to use var as a string, regardless of whether you know it is a string or not.
Better safe than sorry.