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

时间:2012-08-07 10:35:25

标签: python string printing 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

我收到此错误:

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

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

9 个答案:

答案 0 :(得分:165)

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

您可以将str(c)调用的结果分配给c,如@jamylak所正确显示,然后连接所有字符串,或者您可以简单地将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

使用:

{{1}}

答案 1 :(得分:72)

str(c)会返回字符串代表c,并且不会改变c本身。

c = str(c) 

可能就是你要找的东西

答案 2 :(得分:21)

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

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

答案 3 :(得分:6)

c = a + b 
str(c)

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

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

它应该有用。

答案 4 :(得分:1)

最简单,最容易混淆的解决方案:

ul#menu li {
display: inline-block;
float: right;
position: relative;
margin-top: 28px; 
margin-left: 10px;
margin-right: 35px;

}

ul#menu li a {

text-decoration: none;
color: #808080;
font-family: "Helvetica Neue";
font-size: 15px;
}

#backgroundimage {
background: url("image3.png");
width: 1024px;
height: 500px;
background-repeat: no-repeat;
display: block;
position: relative;
background-position: 0 500px;
} 

我在http://freecodeszone.blogspot.com/

上找到了这个

答案 5 :(得分:1)

这就是我所做的就是摆脱这个错误,将变量分隔为“,”帮助了我。

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

这是输出

值为-113

(程序退出代码:0)

答案 6 :(得分:0)

我也有错误信息" TypeError:无法连接' str'和' int'对象&#34 ;.事实证明,我只是忘了在打印时在变量周围添加str()。这是我的代码:



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()




我知道,这是一个愚蠢的错误,但对于像我这样非常陌生的初学者,它会发生。

答案 7 :(得分:0)

您可以使用字符串函数将int转换为str

user = "mohan"

line = str(50)

print(user + "typed" + line + "lines")

答案 8 :(得分:0)

除了其他答案外,还可以使用format()

print("a + b as integers: {}".format(c))

例如-

hours = 13
minutes = 32
print("Time elapsed - {} hours and {} minutes".format(hours, minutes))

将产生输出-Time elapsed - 13 hours and 32 minutes