python ZeroDivisionError:float除零 - 如何将其视为异常

时间:2015-08-04 14:15:39

标签: python

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

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

1 个答案:

答案 0 :(得分:4)

您可以使用try / except:

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

编辑1:

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

if YearWinLoseTotalHard2 == 0:

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

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

另外,你已经写了

YearWinLosePercent3 == 0

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