You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中ZeroDivisionError: division by zero问题的修复方案咨询

问题分析与修复方案

问题根源

原代码中,判断空字符串的逻辑if statistics == '': return 0被放在了for i in statistics:循环内部。当传入空字符串时,for循环不会执行,这行判断永远不会触发,导致后续执行res = count / len(statistics) * 100时,len(statistics)为0,触发ZeroDivisionError。

需要修改的部分

  1. 调整空字符串判断的位置:将空字符串的检查逻辑移到函数的最开头,在执行循环和除法计算前就处理空输入,直接返回0。
  2. (可选)优化统计逻辑:可以用字符串的count()方法替代循环统计'1'的数量,让代码更简洁高效。

修改后的代码

def get_success_rate(statistics: str) -> int:
    # 先检查空字符串,直接返回0
    if statistics == '':
        return 0
    count = statistics.count('1')  # 用count方法替代循环统计,更简洁
    res = count / len(statistics) * 100
    return round(res)


print(get_success_rate("11100"))  # 60
print(get_success_rate("1100"))  # 50
print(get_success_rate("000000"))  # 0
print(get_success_rate("11111"))  # 100
print(get_success_rate(""))  # 0

效果验证

修改后执行代码,所有测试用例都能正常输出,空字符串输入时返回0,不会再触发除零错误。

内容的提问来源于stack exchange,提问作者Andrey Petrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:02:58