递增循环中索引的开始和结束边界

时间:2020-05-15 20:01:03

标签: python algorithm loops increment

我还是Python的新手。

我试图产生一个while循环,该循环生成连续的文本块。这是我尝试过的:

alpha = 'abcdefghijklmnopqrstuvwxyz'

start = 0
i = start
while i < 20:
    for i in range(start, len(alpha)):
        i += 1

        text = alpha[start:i]
        print(text)

        reset = i > 4

        if reset:
            print('reset')
            start += 1
            i = (start)

这将输出:

a
ab
abc
abcd
abcde
reset
bcdef
reset
etc....

但是我想要做的是:

a
ab
abc
abcd
abcde
reset
b
bc
bcd
bcde
bcdef
reset
c
cd
cde
etc...

在我看来,分配i = start的地方似乎不是我想要的那样“起作用”?

谢谢!

3 个答案:

答案 0 :(得分:1)

这就是我要做的:

alpha = 'abcdefghijklmnopqrstuvwxyz'

for i in range(20):
    for j in range(1,6):
        text = alpha[i:i+j]
        print(text)
    print("reset")

答案 1 :(得分:1)

尝试一下:

alpha = 'abcdefghijklmnopqrstuvwxyz'

start = n = 0

while n < len(alpha):
    n += 1

    text = alpha[start:n]
    print(text)

    reset = len(text) > 4

    if reset:
        print('reset')
        start += 1
        n = start

答案 2 :(得分:0)

alpha = 'abcdefghijklmnopqrstuvwxyz'
count = 0
start = 0
i = 0
while i < 20:
    for j in range(start, len(alpha)):
        count +=1
        text = alpha[start:j]
        print(text)

        reset = count > 5

        if reset:
            print('reset', end='')
            start += 1
            i = start
            count = 0
            break

可以肯定的是每个人都已经回答了hhaa,但是已经回答了,所以将其发布。