为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

海绵宝宝撒 2022-09-27 14:53:55
此代码引发可被 0 整除的错误 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 aboven_pet_notd = n_images - n_pet_dogpct_corr_dog = ( n_class_cdog / n_pet_dog )*100pct_corr_notdog = ( n_class_cnotd / n_pet_notd )*100pct_corr_breed = ( n_match_breed / n_pet_dog )*100即使我使用if-else语句,它也会抛出相同的错误,我应该使用异常语句,我怎么能在这种情况下使用它,我已经被告知这是因为缩进错误,但我检查了它,它应该没有问题
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

假设 和 是整数,我建议将分母更改为 和,以便您可以避免在那里使用 min 值,而是回退到最小值。示例:更改n_pet_dogn_pet_notdmax(n_pet_notd, 1)max(n_pet_dog, 1)01

pct_corr_dog = ( n_class_cdog / n_pet_dog )*100

pct_corr_dog = ( n_class_cdog / max(n_pet_dog,1) )*100


查看完整回答
反对 回复 2022-09-27
?
手掌心

TA贡献1942条经验 获得超3个赞

您可以使用三元运算符来获取干净的代码。

pct_corr_dog = (n_class_cdog/n_pet_dog)*100 if (n_pet_dog != 0) else #what to do otherwise


查看完整回答
反对 回复 2022-09-27
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您可以通过不除以零来修复除以零。

n_pet_dog可能为零。这或多或少是不可避免的。可能没有宠物狗。( n_class_cdog / n_pet_dog )

在这种情况下,试图确定宠物狗的百分比是没有意义的,所以你应该(a)不执行这个语句,并且(b)决定在没有宠物狗的情况下,你想要你的代码做什么。


查看完整回答
反对 回复 2022-09-27
  • 3 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信