当我尝试将一个整数添加"b"并转换成字符串时,出现了以下错误:
File "program.py", line 19, in getname
name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
这与此函数相关:
num = random.randint(1,25)
name = "b" + num
当我尝试将一个整数添加"b"并转换成字符串时,出现了以下错误:
File "program.py", line 19, in getname
name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
这与此函数相关:
num = random.randint(1,25)
name = "b" + num
name = 'b' + str(num)
或者name = 'b%s' % num
请注意,在3.x版本中第二种方法已被弃用。
Python不会像JavaScript或PHP一样自动转换类型。
你必须将其转换为字符串,或使用格式化方法。
name="b"+str(num)
或printf风格的格式化(在Python3中已被弃用)
name="b%s" % (num,)
或者使用新的.format字符串方法
name="b{0}".format(num)
Python 3.6引入了f-strings ,您可以直接使用变量名称而无需使用format
函数:
>>> num=12
>>> f"b{num}"
'b12'
是的,Python没有隐式的整数转化成字符串。
可以尝试使用str(num)
代替。
name = "b{0:d}".format( num )
+
的右侧转换为str
。这对我来说有点惊讶,但是那个答案解释得很好。 - LondonRob