Python运行报错can only concatenate str (not "bool") to str如何解决?
错误原因
报错can only concatenate str (not "bool") to str的核心是类型不匹配:代码中Greater、Smaller属于布尔(bool)类型,Python不允许直接使用+运算符拼接字符串与布尔值,必须先将布尔值转换为字符串类型后才可执行拼接操作。
修正方案
共有三种常用的修改方式,可按需选择:
- 方案1:用
str()函数将布尔值转为字符串后再拼接 - 方案2:使用print的多参数特性直接输出,无需手动做拼接处理
- 方案3:使用Python3.6及以上版本支持的f-string格式化输出,代码可读性更高
完整可运行的修正代码(f-string方案示例)
num_1 = input("Enter first number: ") num_2 = input("Enter second number: ") num_1 = int(num_1) num_2 = int(num_2) Sum = num_1 + num_2 print(Sum) Greater = num_1 > num_2 Smaller = num_1 < num_2 print(f"is number 1 greater than number 2? {Greater}") print(f"is number 2 greater than number 1? {Smaller}")
另外两种方案的对应输出行写法
方案1(转字符串拼接)
print("is number 1 greater than number 2? " + str(Greater)) print("is number 2 greater than number 1? " + str(Smaller))
方案2(print多参数输出)
print("is number 1 greater than number 2? ", Greater) print("is number 2 greater than number 1? ", Smaller)
内容的提问来源于stack exchange,提问作者AdityaCodes
相关产品推荐
相关产品推荐

