从Python中的string和整数中创build一个string

当我尝试获取一个整数并将“b”前置到它时,我得到这个错误,将它转换成一个string:

File "program.py", line 19, in getname name = "b" + num TypeError: Can't convert 'int' object to str implicitly 

这与这个function有关:

 num = random.randint(1,25) name = "b" + num 
 name = 'b' + str(num) 

要么

 name = 'b%s' % num 

正如S.Lott所指出的那样,混合运算符'%'已经被Python 3及更高版本弃用了。 我从INTERCAL那里偷走了一个名字,但是我就是这么说的,至less想看一遍,就像渡渡鸟 – 从地球上消失了一样。

Python不会像JavaScript或PHP这样的语言自动转换types。

您必须将其转换为string,或使用格式化方法。

 name="b"+str(num) 

或printf风格格式…

 name="b%s" % (num,) 

或新的.formatstring方法

 name="b{0}".format(num) 

是的,python没有隐式intstring转换。

尝试str(num)来代替

已经给出了正确的答案,但是我想要声明,并且每次打算将var用作string时,应该始终使用str(var),无论您是否知道它是否是string。

比对不起更安全。

 name = "b{0:d}".format( num )