python - 如何修复 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))
解决方案
您需要替换
bcount == 1
为bcount += 1
. bcount == 1
是一个布尔语句,它在这里不做任何事情。似乎您想在那时增加计数。
此外,即使在那之后,也可能存在一个ZeroDivisionError
,因为输入可能永远不是b
or g
。我建议在打印时尝试划分之前有一个 if 条件。
推荐阅读
- python - Json 到 CSV python
- laravel - 当我尝试删除在另一个表中具有像外键一样的键的行时,如何获取数据库错误?
- jquery - 在活动选项卡中选择至少一个单选/复选框
- reactjs - 将 react-router v3 更改为 react-router v4
- angular - 带有子菜单的 Angular Material sidenav 迷你变体
- wpf - WPF UWP 和实体框架
- windows - 在批处理文件中将用户输入转换为小写
- ios - xamarin 表单 ios InAppBillingPlugin 订阅 - 无法连接到 iTunes 商店错误
- javascript - 将模型存储为隐藏输入中的 JSON 并在 javascript 中访问它
- go - SSH 未知 TTY 错误消息