Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 整数查找器问题_Python_Random - Fatal编程技术网

Python 整数查找器问题

Python 整数查找器问题,python,random,Python,Random,我正在尝试创建一个函数,用以下代码查找您想要的号码: def get(x): y=1 while (x/y != 1): y= y+1 return y 但它总是给我一半的答案+1。比如,如果我加6,它会给我4,如果我加500,它会给我251 您的问题是它正在进行整数除法。因此,6/4的计算结果为1。(在python3中,真正的除法会起作用,我认为您的测试会起作用) 解决此问题的最佳方法是执行以下操作: while x != y: ... 当然

我正在尝试创建一个函数,用以下代码查找您想要的号码:

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

但它总是给我一半的答案+1。比如,如果我加6,它会给我4,如果我加500,它会给我251

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

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

while x != y:
    ...

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

我想这就是你想要的-

 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文档以了解更多信息