Python int转str未生效 字符串拼接报TypeError求解
问题根源
你代码里的类型转换完全没有生效,核心原因是Python中str()、int()这类类型转换函数不会原地修改传入的变量,只会返回转换后的新值。你单独写str(number)没有用变量接收返回值,执行完这行之后number还是整数类型,和字符串拼接时自然会抛出TypeError: can only concatenate str (not "int") to str错误。
另外你写在拼接后的int(number)也是完全无效的冗余代码,同样没有接收返回值,对逻辑没有任何影响,反而会产生无意义的性能开销。同时你贴出的代码还存在缩进错误,Python依靠缩进判定代码块归属,函数内、循环内的代码必须做对应缩进才能正常运行。
修正方案
拼接时直接使用str(number)得到的字符串结果即可,不需要做无意义的来回类型转换,同时修正代码缩进:
def print_board(): number = 1 output = "" while number < 91: if number in available_numbers: output = output + text.yellow + str(number) elif number in choosen_numbers: output = output + text.green + str(number) number += 1 print(output)
如果想要写法更简洁,字符串拼接可以用+=运算符替代重复写output = output + ...,效果完全一致:
def print_board(): number = 1 output = "" while number < 91: if number in available_numbers: output += text.yellow + str(number) elif number in choosen_numbers: output += text.green + str(number) number += 1 print(output)
内容的提问来源于stack exchange,提问作者Ashmeet SIngh
相关产品推荐
相关产品推荐

