案例:创建一个函数,输入一个大于1的整数,返回一个列表,包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。如果这个数是素数,则返回“(integer) is prime”。
- 一般的写法
def divisors1(integer):
a =[]
for i in range(2,integer):
if integer % i == 0:
a.append(i)
if len(a) != 0:
return a
else:
return "%i is prime" % integer
print(divisors1(12))
print(divisors1(25))
print(divisors1(13))
###输出结果为:
[2, 3, 4, 6]
[5]
13 is prime
- 进阶写法:使用列表推导式,只用一行代码来完成。且return的值也直接使用条件语句来表达
def divisors2(integer):
a =[i for i in range(2, integer) if integer % i == 0]
return a if a else "%i is prime" % integer
print(divisors2(12))
print(divisors2(25))
print(divisors2(13))
###输出结果为:
[2, 3, 4, 6]
[5]
13 is prime
网友评论