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 |
如果您尝试为变量赋值,则应该知道运算符是'=',而不是'=='。 后者用于比较值。