Python计算股票涨跌幅时触发ZeroDivisionError问题咨询
解决ZeroDivisionError:计算股票涨跌幅时除以零的问题
这个错误的原因非常直白:你传递给getPercent函数的past参数值是0,导致计算过程中触发了ZeroDivisionError(浮点数被零除)。
咱们看你的计算逻辑:((current - past) / past) * 100,这里的分母是past——而在数学里,零是不能作为除数的,Python自然也会严格遵循这个规则,一旦发现你用零做除数,就会立刻抛出这个错误。
举个例子,如果你的调用是getPercent(0.0, 150.0),这时候past为0,就会直接触发报错。
简单的修复方案
你可以在函数内部添加参数校验,提前拦截零值的情况,避免报错:
def getPercent(past: float, current: float): if past == 0: # 这里可以根据你的业务需求处理,比如返回0,或者抛出更明确的提示 return 0.0 # 或者改成 raise ValueError("基准价格(past)不能为零") p = ((current - past) / past) * 100 return round(p, 2)
另外要注意,你用str(getPercent())打印结果的时候,一定要确保传入的past和current参数是合法的数值,比如str(getPercent(100.0, 125.5)),这样才不会触发错误。
内容的提问来源于stack exchange,提问作者Collin Chappell
相关产品推荐
相关产品推荐

