[英]difficulty in understanding a code in python
我编写了一个代码来检查质数的总数,包括某个数。 当对给定数字执行检查时 3,else 语句缩进的变化正在改变我的输出。 我不明白为什么会这样; 请解释。 我需要输出为 [2,3]。
def count_prime(num):
lis=[x for x in range(3,num+1,2)]
lisi=[2]
check=False
if num==0 or num==1:
return 0
for a in lis:
for b in range(3,a,2):
print(b)
if a%b==0:
check=False
break
else:
print('here is indentation change')
check=True
pass
if check==True:
lisi.append(a)
primes=len(lisi)
print(lisi)
return (primes)
这给出了素数列表为2和 no。 对于 num=3,质数=1
def count_prime(num):
lis=[x for x in range(3,num+1,2)]
lisi=[2]
check=False
if num==0 or num==1:
return 0
for a in lis:
for b in range(3,a,2):
print(b)
if a%b==0:
check=False
break
else:
print('here is indentation change')
check=True
pass
if check==True:
lisi.append(a)
primes=len(lisi)
print(lisi)
return (primes)
这给出了素数列表为 [2,3] 和 no。 对于 num=3,质数=1
请点击以下链接查看代码图片
输出为 2,3 。
输出为 2 。
如果循环内没有带有break
语句的退出,则执行带有循环的else
块(在 for/while 块之后)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.