Python:TypeError:不能连接'str'和'int'对象

我有这个Python程序,将string添加到整数:

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 

我得到这个错误:

 Python: TypeError: cannot concatenate 'str' and 'int' objects 

我怎样才能将string添加到整数?

有两种方法可以解决上次print语句导致的问题。

您可以将str(c)调用的结果分配给c正如@jamylak所示,然后连接所有的string,或者您可以简单地用下面的代码replace上一次的print

 print "a + b as integers: ", c # note the comma here 

在这种情况下

 str(c) 

没有必要,可以删除。

样品运行输出:

 Enter a: 3 Enter b: 7 a + b as strings: 37 a + b as integers: 10 

有:

 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 

str(c)返回str(c)string表示forms,并且不改变c本身。

 c = str(c) 

大概是你在找什么

如果你想连接int或者float到一个string,你必须使用这个:

 i = 123 a = "foobar" s = a + str(i) 
 c = a + b str(c) 

实际上,在最后一行中,你并没有改变variablesc的types。 如果你这样做

 c_str=str(c) print "a + b as integers: " + c_str 

它应该工作。

最简单和最容易混淆的解决scheme:

 a = raw_input("Enter a: ") b = raw_input("Enter b: ") print "a + b as strings: %s" % a + b a = int(a) b = int(b) c = a + b print "a + b as integers: %d" % c 

我在http://freecodeszone.blogspot.com/上find了这个;

我也有错误消息“TypeError:无法连接'str'和'int'对象”。 事实certificate,我只是忘了添加str()时打印它的variables。 这是我的代码:

 def main(): rolling = True; import random while rolling: roll = input("ENTER = roll; Q = quit ") if roll.lower() != 'q': num = (random.randint(1,6)) print("----------------------"); print("you rolled " + str(num)) else: rolling = False main() 

你可以使用string函数将int转换为str

 user = "mohan" line = str(50) print(user + "typed" + line + "lines") 

这是我已经做了摆脱这个错误分离variables与“,”帮助了我。

 # Applying BODMAS arg3 = int((2 + 3) * 45 / - 2) arg4 = "Value " print arg4, "is", arg3 

这是输出

值是-113

(程序退出,代码:0)