如何修复Python中int与str无法进行除法运算的错误?
修复除法计算器的类型错误问题
问题根源
你的代码存在几个关键问题,直接导致了类型不匹配错误:
inputPembagi接收的是字符串类型,未转换为整数就直接和inputAngka(int类型)执行除法运算isdigit是字符串方法,必须加括号调用isdigit(),否则只是检查方法对象是否存在,永远返回True- 判断除数为0的条件中,
inputPembagi是字符串,和整数0比较永远不成立,且判断顺序逻辑错误 isdigit()无法识别负整数,会把合法的负除数判定为非法输入
修复后的代码
print("===DIVIDING CALCULATOR===") inputAngka = int(input("Insert the number : ")) inputPembagi_str = input("Insert the dividers : ") # 用异常处理覆盖所有输入异常场景 try: inputPembagi = int(inputPembagi_str) if inputPembagi == 0: print("Can't divide a number by 0!") else: print("The result is", inputAngka / inputPembagi) except ValueError: print("Inputted data should be in integer!")
修复说明
- 改用
try-except捕获类型转换异常,比isdigit()更可靠,能正确处理正负整数输入 - 先将除数字符串转为整数,再执行除法运算,彻底解决类型不匹配问题
- 调整逻辑顺序,先判断除数是否为0,再执行除法,逻辑更严谨
- 修正了原代码中字符串与整数直接比较的错误
内容的提问来源于stack exchange,提问作者simamz
相关产品推荐
相关产品推荐

