整数查找器问题

时间:2012-09-22 02:36:03

标签: python random

我正在尝试使用此代码创建一个找到所需数字的函数:

def get(x):
    y=1
    while (x/y != 1):
        y= y+1
    return y

但它一直给我一半答案+ 1.就像,如果我输入6它给我4,如果我输入500它给我251.

2 个答案:

答案 0 :(得分:1)

你的问题是它正在进行整数除法。所以,6/4的计算结果为1.(在python3中,真正的除法会启动,我认为你的测试会起作用)

解决此问题的最佳方法是执行以下操作:

while x != y:
    ...

当然,这些测试应该只使用整数来完成...一旦你输入浮点数,就很难说会发生什么。

答案 1 :(得分:0)

我认为这就是你要找的东西 -

 def get(x):
     y=1.0
     while (x/y != 1):
             print y, x
             y= y+1
     return y

尝试下面的函数调用 -

>>> get(5.0)

1和1.0就是诀窍。查看python文档以获得更多理解!