【问题标题】:python ZeroDivisionError: float division by zero - how to treat it as an exceptionpython ZeroDivisionError:浮点除以零 - 如何将其视为异常
【发布时间】:2015-08-04 22:23:25
【问题描述】:

我需要计算获胜率的百分比,但我遇到了 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

【问题讨论】:

  • 为什么这有两个赞成票?

标签: python


【解决方案1】:

你可以使用try/except:

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

编辑 1:

为了更正你写的东西,让我做几个cmets。 通过这一行:

if YearWinLoseTotalHard2 == 0:

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

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

你也写了

YearWinLosePercent3 == 0

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

【讨论】:

    猜你喜欢
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多