关于python ZeroDivisionError:float除以零:python ZeroDivisionError:float除零 – 如何将其视为异常

python ZeroDivisionError: float division by zero - how to treat it as an exception

我需要计算中奖率的百分比,我遇到ZeroDivisionError问题:当分母中有零时,浮点除零。 我想将它视为一个例外,打印零并继续下一个数组。 任何援助将不胜感激。

1
2
3
4
5
6
7
8
9
10
11
YearWinLose1 = '0'
YearWinLoseTotalHard2 = '0'

YearWinLoseTotalHard2 = float(YearWinLose1) + float(YearWinLose1)
YearWinLosePercent3 = float(YearWinLose1)/float(YearWinLoseTotalHard2)*100

if YearWinLoseTotalHard2 == 0:
   YearWinLosePercent3 == 0
   print YearWinLosePercent3
else:
   print YearWinLosePercent3


您可以使用try / except:

1
2
3
4
try:
    YearWinLosePercent3 = float(YearWinLose1)/float(YearWinLoseTotalHard2)*100
except ZeroDivisionError:
    print '0' #or whatever

编辑1:

为了纠正你所写的内容,请允许我发表一些意见。
通过这条线:

1
if YearWinLoseTotalHard2 == 0:

错误已在上一行中发生。 如果你想使用if结构作为控制方法,你应该在if块中添加除法:

1
2
3
4
if YearWinLoseTotalHard2 != 0:
    YearWinLosePercent3 = float(YearWinLose1)/float(YearWinLoseTotalHard2)*100
else:
    print '0'

另外,你写了

1
YearWinLosePercent3 == 0

如果您尝试为变量赋值,则应该知道运算符是'=',而不是'=='。 后者用于比较值。