本文主要是介绍Python报错记录 | TypeError: unsupported operand type(s) for +: ‘bool‘ and ‘str‘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面:
■ 在对变量进行连接或运算时,要注意:被连接或运算的变量,其类型应该是一致 / 符合连接或运算条件的,否则会报错。
(一)原始语句:
str1=bool(1) #给str1赋值bool(1)
print(str1)
print(str1 + ' Love') #想要输出字符串'True Love'
(二)报错:
TypeError: unsupported operand type(s) for +: 'bool' and 'str'
(三)错误原因:
1. 变量赋值的格式为:变量名 = 变量值,其中变量值可以是直接赋值,也可以用函数赋值。Python中的变量赋值不需要类型声明,因此变量的类型跟随变量值的类型。
2. +号在Python里面有两层意义:
(1)起到数值相加的作用;
(2)起到字符连接的作用;
3. bool函数的返回值虽然是False或True,但其实它是int的子类;
综上可知,str1 = bool(1)实际上的str应该是数值类型,而' Love'是字符类型。故str1 + ‘ Love' 实际上是用数值型变量 + 字符型变量。基于2,这时候+号的意义就混乱了(系统无法判断到底是相加还是连接),因此报错。
(四)解决方案:
1. 对str1赋值前声明变量类型:
str1 = str(bool(1))
这会使得str1 取bool(1)对应的字符串,即:str1值为字符串:True
2. 再输出str1和' Love' 的连接:
print(str1 + ' Love')
3. 输出结果为:
这篇关于Python报错记录 | TypeError: unsupported operand type(s) for +: ‘bool‘ and ‘str‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!