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