我有一个接受两个输入的函数,并将返回一个元组数组,其中给定元组中的两个数字与给定函数的两个数字具有完全相同的比率!
所以一切工作正常,但由于某些原因,在某些情况下,它并没有拾取每个元组。这是一个例子,我不知道为什么:
In [52]: def find_r(num1,num2):
....: ratio = num1/float(num2)
....: ratio = 1/ratio
....: my_list = [(a,int(a * ratio)) for a in range(1,num1) if float(a * ratio).is_integer()] #and a * 1/float(ratio) + a <= num1]
....: return my_list
....:
In [53]: find_r(100,364)
Out[53]: [(75, 273)]
所以它只返回一个元组,但是如果你将 75 和 273 除以 3,你会得到一个 25 和 91 的元组,它们具有相同的比率!为什么我的函数没有选择这个实例?
如果有帮助,我怀疑它与is_integer()
方法有关,但我不太确定。
谢谢!