Jupyter Notebook导入自定义函数报错:TypeError类型错误求助
问题修复方案
错误原因
你遇到的TypeError是因为调用percentage_change时传入的updated_total和updated_inflation_values是字符串类型,而Python不支持对字符串执行减法、除法这类算术运算。
修复方法
方法1:在函数内部处理类型转换(推荐)
直接在函数里把参数转成数值类型,同时增加异常处理,避免转换失败或除零错误:
def percentage_change(updated_total, updated_inflation_values): try: # 将参数转换为浮点型,适配整数和小数场景 total = float(updated_total) inflation_val = float(updated_inflation_values) # 防止除零错误 if inflation_val == 0: raise ValueError("updated_inflation_values 不能为0,否则会触发除零错误") return ((inflation_val - total) / inflation_val) * 100 except ValueError as e: print(f"错误:{e}") return None
方法2:调用函数前提前转换类型
如果能确定参数的来源(比如从CSV/Excel读取的字符串数据),可以在调用函数前手动转成数值:
# 假设从外部获取的是字符串格式的数值 total_str = "80" inflation_str = "100" # 转换为浮点型后调用函数 result = percentage_change(float(total_str), float(inflation_str))
注意事项
- 从文件、用户输入或第三方工具读取的数据,很多时候默认是字符串类型,必须先转换为
int或float才能进行算术运算。 - 一定要处理分母为0的情况,否则会触发
ZeroDivisionError。
内容的提问来源于stack exchange,提问作者counterculture
相关产品推荐
相关产品推荐

