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
我也有错误消息“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)