所以我必须编写一个带有两个参数的程序,一个整数' num'和一个整数'限制'。然后它必须返回小于或等于num的除数列表。为了更多地分解它,“数字”的除数。是1和#39之间的数字X这样剩下的就是“数字”和“数字”。 by X是0.如果任何参数不是整数,则该函数应该返回None。
这是我的意思的一个例子:
..... divisors(" hello!",5)应该返回None,因为"你好"是一个字符串
..... divisors(" 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....
答案 0 :(得分:0)
您可以使用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]