在Python中用字符串和整数创建一个字符串

时间:2010-05-12 22:27:58

标签: python string random integer python-3.x

我在尝试取一个整数并在其前面添加“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

6 个答案:

答案 0 :(得分:44)

name = 'b' + str(num)

name = 'b%s' % num

正如S.Lott所说,对于Python 3及更高版本,不推荐使用混合运算符'%'。我偷了INTERCAL这个名字“mingle”,但这就是我谈论它的方式,并且希望以前至少看过一次 - 比如渡渡鸟 - 它从地球上消失了。

答案 1 :(得分:8)

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

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

name="b"+str(num)

或printf样式格式化......

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

或新的.format字符串方法

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

答案 2 :(得分:3)

是的,python没有隐式int到字符串转换。

尝试str(num)而不是

答案 3 :(得分:2)

Python 3.6有f-strings,您可以直接放置变量名称,而无需使用format

>>> num=12
>>> f"b{num}"
'b12'

答案 4 :(得分:1)

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

答案 5 :(得分:1)

已经给出了正确的答案但是我想要插入并说每次打算将var用作字符串时总是使用str(var),无论你是否知道它是不是字符串。

比抱歉更安全。