Python TypeError报错求助:需字符串而非整数(字符串拼接问题)
解决TypeError: must be str, not int的问题
嘿,这个问题很常见——你遇到的TypeError是因为你试图把整数类型的计算结果直接和字符串拼接在一起啦。
错误原因分析
你代码里的int(my_quantity) * int(price)会算出一个整数(也就是商品总价),但你在把它和前面的字符串片段(比如str(No) + " " + str(my_text)这些)用+拼接的时候,Python不允许整数和字符串直接相加,所以抛出了这个类型不匹配的错误。
修复后的代码
只需要把计算出来的总价转换成字符串类型就可以了,用str()包裹住计算表达式:
txtReceipt.insert(END, str(No) + " " + str(my_text) + '\t\t' + str(my_quantity) + '\t\t' + str(int(my_quantity) * int(price)) + "\n")
更简洁的写法(可选)
你还可以用Python的f-string来简化代码,它会自动帮你处理类型转换,代码可读性也更高:
total = int(my_quantity) * int(price) txtReceipt.insert(END, f"{No} {my_text}\t\t{my_quantity}\t\t{total}\n")
这样修改后,代码就能正常运行,不会再出现类型错误啦。
内容的提问来源于stack exchange,提问作者mohamed abdallah
相关产品推荐
相关产品推荐

