我有这个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
如何将字符串添加到整数?
答案 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;
}
上找到了这个
答案 5 :(得分:1)
这就是我所做的就是摆脱这个错误,将变量分隔为“,”帮助了我。
# Applying BODMAS
arg3 = int((2 + 3) * 45 / - 2)
arg4 = "Value "
print arg4, "is", arg3
这是输出
(程序退出代码: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