python integer division error - modulo by zero - BUT divisor != 0
我刚开始使用python进行简单的数学运算,所以如果这是一个愚蠢的问题,我很抱歉。
我有8个变量都设置为整数,这些整数在执行简单计算时使用。
1 2 3 4 5 6 7 8 9 10 11 12 | a = 0 b = 17 c = 152 d = 1 e = 133 f = 19 g = 20 h = 0 answer = ( ( ( a / f ) + b + c ) - ( g + ( h / f ) ) ) / ( d / f ) print answer |
当我运行这段代码时,我得到了错误,zerodivisionerror:整数除以或模除以零。
我已经读过这个错误,所有的文档都指向我的除数为零,但是如果我用数字作为字符串来代替变量打印这个,我会得到:
1 | ( ( ( 0 / 19 ) + 17 + 152 ) - ( 20 + ( 0 / 19 ) ) ) / ( 1 / 19 ) |
这个语句中没有除数零的地方。
请告诉我如何改变我的表达,以得到答案2831。请注意,我可以将变量的类型更改为float或其他类型。谢谢你的帮助!
可能您使用的是
因此,在下面的代码中:
1 | ( 20 + ( 0 / 19 ) ) ) / ( 1 / 19 ) |
1 | ( 20 + ( 0 / 19 ) ) ) / 0 |
现在您可以看到错误的来源了。
您可以在
1 | from __future__ import division |
或者您可以使用
1 | from __future__ import division |
比你的计算还要多
它将导致分区返回浮动
这应该有效。以下是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | a = 0 b = 17 c = 152 d = 1 e = 133 f = 19 g = 20 h = 0 answer = ( ( ( a / f ) + b + c ) - ( g + ( h / f ) ) ) / ( d / f ) print(answer) |
几乎完全一样。