首页 > 解决方案 > 如何修复 ZeroDivisionError:除以零?

问题描述

运行代码后,我收到 ZeroDivisionError!有人可以解释发生了什么吗?寻找 bscore 和 gscore 输入的平均值

bscore = 0
gscore = 0
bcount = 0
gcount = 0

choice = input("Boy (b), Girl (g) or Quit (q): ")
while (choice != 'q'):
    if(choice == 'b'):
        score = int(input("Boy score: "))
        bscore += score
        bcount == 1
        #z = (x / y) if y != 0 else 0
    elif(choice =='g'):
        score = int(input("Girl score: "))
        gscore += score
        gcount += 1
    else:
            print("Invalid!")
    choice = input("Boy (b), Girl (g) or Quit (q): ")

print("Boy average is: ", (bscore/bcount))
print("Girl average is: ", (gscore/gcount))

标签: pythonerror-handlingaveragedivision

解决方案


您需要替换 bcount == 1bcount += 1. bcount == 1是一个布尔语句,它在这里不做任何事情。似乎您想在那时增加计数。

此外,即使在那之后,也可能存在一个ZeroDivisionError,因为输入可能永远不是bor g。我建议在打印时尝试划分之前有一个 if 条件。


推荐阅读