Python中转换整数后相加仍出现字符串拼接,求解决方案
问题原因与解决办法
你的代码核心问题是类型转换后没有重新赋值给变量:
int(a)和int(b)只是临时把字符串转换成了整数,但没有将这个结果存回a和b中,所以a、b依然是字符串类型。- 在Python里,字符串之间的
+是拼接操作,所以"5"+"3"会得到"53",而不是算术加法的8。
修正后的代码
string = pr new_string = string.replace("+", " ") x = new_string.split(" ") a, b = x # 关键:把转换后的整数重新赋值给变量 a = int(a) b = int(b) print(a + b)
更简洁的写法
可以去掉冗余的中间变量,简化代码:
# 一步拆分出两个数字字符串,再转换为整数相加 a, b = pr.replace("+", " ").split() print(int(a) + int(b))
这里split()默认按任意空白字符分割,比指定split(" ")更灵活,能处理算式前后可能存在的多余空格。
内容的提问来源于stack exchange,提问作者Morgan Kindle
相关产品推荐
相关产品推荐

