在涉及多个参数的函数中返回除数?
问题描述:
所以我必须编写一个程序,该程序需要两个参数,一个整数'num'和一个整数'limit'。然后它必须返回小于或等于num的因数列表。为了分解更多,'num'的除数是1和'num'之间的数字X,这样X除以'num'的余数就是0.如果任何参数不是整数,函数应该返回没有。在涉及多个参数的函数中返回除数?
这里是我的意思的例子:
.....除数( “你好!”,5)应返回None,因为 “你好” 是一个字符串
.. ...除数( “23”,5)应返回None,因为 “23” 是一个字符串
......除数(15,12.34)应该返回None,因为12.34是一个浮动
......除数(1,5)应该返回[1]
个......除数(12,5)应该返回[1,2,3,4]
def divisors(num, limit):
if num and limit not type(int):
return None
else:
# I don't know what else to put here to make it divide and return the correct values....
答
可以使用isinstance
函数来检查你的参数的类型,然后使用yield
返回发电机:
>>> def divisors(num, limit):
... if isinstance(num,int) and isinstance(limit,int):
... for i in range(1,limit):
... if num%i==0:
... yield i
... else :
... yield None
...
>>> list(divisors(12, 5))
[1, 2, 3, 4]
>>> list(divisors('12', 5))
[None]