python continue 计数器_Python,For循环计数器不更新?

我正在写一个简单的程序,它给出了小于给定的N的所有素数的列表。

我面临的问题是函数primes_genelse子句中的for循环计数器check没有更新。不过,当我使用相同的逻辑而不使用函数时,就像第二个代码片段中提到的那样,一切都是正确的。在

逻辑适用范围:-在当传递给函数的n是<= 2时,返回空白列表

当n是> 2,range(3,n,2)标识所有奇数。这是第一个代码段中标记的步骤1。

第二个for循环用步骤2标记,检查no.是否可以被小于i的所有no整除。如果是,则检查计数器递增+1,并且此循环以“continue”结束

如果check在for循环结束前保持为零,那么i将追加到列表中,并返回循环完成后的finally after。

在问题:-在

-我得到的结果是[2],这是错误的ans。所以我写了第3步,正如第一个片段中所标记的,我发现我的检查计数器在“continue”之后没有更新,如输出所示。当在第二个代码片段中没有函数的情况下应用相同的逻辑,则一切正常。

我不知道这里出了什么问题,为什么check在^{之后不更新?在contents =['10']

def prime_gen(n):

num_list=[2]

if n <=2:

return []

else:

for i in range(3,n,2): #step 1

check=0

for u in (2,i): #step 2

if i%u == 0:

check += 1

continue

print (check,i) #step 3

if check == 0:

num_list.append(i)

return num_list

if __name__== '__main__':

for j in range(len(contents)):

print (int(contents[j]))

num_list = prime_gen(int(contents[j]))

print (str(num_list).replace('[','').replace(']',''))

输出

^{pr2}$

预期的ans是(当上面的步骤3被注释时)10

2, 3, 5, 7

无功能的第二个代码contents = ['10'] #to-check

for i in range(len(contents)):

target = int(contents[i])

num_list= [2]

for j in range(3,target,2):

check = 0

for u in range(2,j):

if j%u == 0:

check +=1

continue

if check == 0:

num_list.append(j)

#print (num_list)

print (str(num_list).replace('[','').replace(']',''))

输出2, 3, 5, 7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值