1

我有一个简单的 python 程序

除法后,它显示最终值,但我不想显示 .01

from __future__ import division

number = int(133)
output = float(0)
divideNumber = int(1)

stop = false

while stop == false
   halfNumber = number / 2
  output =  number / divideNumber 
  output = round(output, 2)

  if ".0" in str(output):
    if "0.1" in str(output) or "0.2" in str(output ) or.... "0.9" in str(output): 
      #Do Nothing
  else: 
      #Do Nothing
    else: 
      print str(number) + " / " + divideNumber + " = "str(output)

  divideNumber += 1

  if divideNumber < halfNumber:
    break
  else: 
    #Do Nothing
print "Goodbye"

如果我运行它,结果如下:

133 / 1 = 133.0
133 / 7 = 19.0
133 / 11 = 12.09
133 / 12 = 11.08
133 / 19 = 7.0
133 / 22 = 6.05
133 / 33 = 4.03
133 / 43 = 3.09
133 / 44 = 3.02
133 / 64 = 2.08
133 / 65 = 2.05
133 / 66 = 2.02

再见

我的预期结果是

 133 / 1 = 133.0
 133 / 7 = 19.0
 133 / 19 = 7.0
 Goodbye

我的“if”语句错了吗?我没有收到任何错误!

4

3 回答 3

3

“我有一个简单的 python 程序”

这不是一个简单的程序。

如果您想用一位小数显示结果,请使用以下命令:

print '{:.1f}'.format(133./19.)

这打印

7.0

如果你想测试一个整数是否能整除另一个:

if not x%y:
    # y divides x
于 2013-01-11T08:25:38.843 回答
2

如果我说得对,您需要跳过所有非整数数字。这个检查应该是这样的:

from math import floor

if (output - floor(output))>0: # skip
    continue
于 2013-01-11T08:30:04.943 回答
1

您可以像这样定义一个函数,就像133.0==133True: :

In [1]: def func(x,y):
   ...:     a=float(x)/float(y)
   ...:     return int(a)==a
   ...: 

In [2]: func(133,1)
Out[2]: True

In [4]: func(133,11)
Out[4]: False

In [5]: func(133,12)
Out[5]: False

In [6]: func(133,19)
Out[6]: True

进口division__future__

In [14]: from __future__ import division

In [15]: def func(x,y):
    return x/y == int(x/y)
   ....: 

In [16]: func(133,1)
Out[16]: True

In [17]: func(133,11)
Out[17]: False

In [18]: func(133,12)
Out[18]: False

In [19]: func(133,19)
Out[19]: True
于 2013-01-11T08:26:37.040 回答