Python:TypeError:无法连接'str'和'int'对象

use*_*649 141 python printing string integer

我有这个python程序,它将字符串添加到整数:

a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b
a = int(a)
b = int(b)
c = a + b
str(c)
print "a + b as integers: " + c
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Python: TypeError: cannot concatenate 'str' and 'int' objects
Run Code Online (Sandbox Code Playgroud)

如何将字符串添加到整数?

Lev*_*von 171

有两种方法可以解决由最后一个print语句引起的问题.

您可以将str(c)调用结果分配给c@jamylak正确显示,然后连接所有字符串,或者您可以使用以下内容print简单地替换最后一个:

print "a + b as integers: ", c  # note the comma here
Run Code Online (Sandbox Code Playgroud)

在这种情况下

str(c)
Run Code Online (Sandbox Code Playgroud)

没有必要,可以删除.

样本运行输出:

Enter a: 3
Enter b: 7
a + b as strings:  37
a + b as integers:  10
Run Code Online (Sandbox Code Playgroud)

有:

a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b  # + everywhere is ok since all are strings
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: ", c
Run Code Online (Sandbox Code Playgroud)


jam*_*lak 74

str(c)返回一个新的字符串表示c,并且不会改变c自身.

c = str(c) 
Run Code Online (Sandbox Code Playgroud)

可能就是你要找的东西


小智 22

如果要将int或float连接到字符串,则必须使用:

i = 123
a = "foobar"
s = a + str(i)
Run Code Online (Sandbox Code Playgroud)


小智 6

c = a + b 
str(c)
Run Code Online (Sandbox Code Playgroud)

实际上,在最后一行中,您不会更改变量c的类型.如果你这样做

c_str=str(c)
print "a + b as integers: " + c_str
Run Code Online (Sandbox Code Playgroud)

它应该工作.