Python 算术运算返回 0


read = True
while read:
    my_input = int(raw_input())
    print my_input
    result = (1/6) * my_input * (my_input + 1) * (my_input +2)
    if result == 0:
        print ''
        read = False
        break
    else:
        print result

我写了这个小代码片段来解决 1 + (1+2) + (1+2+3+)...没有循环任何东西,但由于某种原因,结果总是 0。我在Eclipse上使用PyDev,但我认为这甚至不是遥远的问题

谢谢

乘以零总是得到零。

>>> a = (1/6)
>>> print a
0

发生这种情况是因为 Python 将生成的操作转换为整数。

为了获得浮点结果,您可以用十进制表示法指定值。

>>> a = 1.0/6.0
>>> print a
0.166666666667

整数除法。

当你除(1/6)时,由于整数除法,它变成了 0。

当两个整数相除时,它们会得到正常的答案,减去小数点后的任何内容。

例如,1/4 通常等于 0.25。但是,小数点后的所有内容都将被删除,因此它显示为 0。

最新更新