首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复此代码中的可被0整除错误

如何修复此代码中的可被0整除错误
EN

Stack Overflow用户
提问于 2020-04-06 03:27:48
回答 3查看 44关注 0票数 0

此代码抛出可被0整除的错误

代码语言:javascript
运行
复制
 for key in results_dic:

    # match (if dog then breed match)
    if results_dic[key][2] == 1:

        # isa dog (pet label) & breed match
        if results_dic[key][3] == 1:
            n_pet_dog += 1

            # isa dog (classifier label) & breed match
            if results_dic[key][4] == 1:
                n_class_cdog += 1
                n_match_breed += 1

        # NOT dog (pet_label)
        else:

            # NOT dog (classifier label)
            if results_dic[key][4] == 0:
                n_class_cnotd += 1

    # NOT - match (not a breed match if a dog)
    else:

        # NOT - match
        # isa dog (pet label) 
        if results_dic[key][3] == 1:
            n_pet_dog += 1

            # isa dog (classifier label)
            if results_dic[key][4] == 1:
                n_class_cdog += 1

        # NOT dog (pet_label)
        else:

            # NOT dog (classifier label)
            if results_dic[key][4] == 0:
                n_class_cnotd += 1


# calculates statistics based upon counters from above
n_pet_notd = n_images - n_pet_dog
pct_corr_dog = ( n_class_cdog / n_pet_dog )*100
pct_corr_notdog = ( n_class_cnotd / n_pet_notd )*100
pct_corr_breed = ( n_match_breed / n_pet_dog )*100

即使我使用if-else语句,它也会抛出同样的错误,我应该使用异常语句吗?在这种情况下如何使用它?我被告知这是因为缩进错误,但我检查了它,应该没有问题。

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-06 04:02:09

假设n_pet_dogn_pet_notd是整数,我建议将分母改为max(n_pet_notd, 1)max(n_pet_dog, 1),这样您就可以避免使用最小值0,而是使用1作为最小分母。示例:更改

代码语言:javascript
运行
复制
pct_corr_dog = ( n_class_cdog / n_pet_dog )*100

代码语言:javascript
运行
复制
pct_corr_dog = ( n_class_cdog / max(n_pet_dog,1) )*100
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61048261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档