如何减少Python中for循环的范围?

问题描述 投票:0回答:1

this问题中,我想找到min(m + k),使得mCk = n,我编写了一个代码来暴力破解我的序列,问题是我的代码不够快,所以我想减少for 循环随着

j
进度

的长度
import math
print("Enter the range of the search, the result is in the form of $(n,a_n)$")
m=int(input())
for n in range (2,m+1):
    C=[]
    stop=1
    k=0
    for i in range (1, n+1):
        s=0
        if stop==-1:
            break
        for j in range(1, math.floor(i/2)+1-k):
            if math.comb(i,j)>n:
                k=k+1
                break
            if math.comb(i,j)==n:
                C.insert(s,i+j )
                s=s+1
                if min(C)<n+1:
                    stop=-1
                    break                      
    print(f"({n},{min(C)}), ")                               

问题是写这样的东西:

k=0
for i in range (0,100-k+1):
    if i%2==0
        k=k+1

不会减少范围的长度,这是我需要用我的代码做的事情

我试图寻找这个问题的解决方案,但我只找到了不相关的堆栈溢出问题。

python for-loop range
1个回答
1
投票

@Sieha 的评论是正确的。循环长度无法更改。

A

while
循环似乎更合适。

另一种选择是使用

continue
关键字而不是
break

continue
将忽略该迭代的循环的其余部分。

for i in range(5):
    print(f"iteration {i}")
    if i>1:
      continue
    print("skipped when i>i")

将会输出

iteration 0
skipped when i>2
iteration 1
skipped when i>2
iteration 2
iteration 3

迭代4

© www.soinside.com 2019 - 2024. All rights reserved.