如何从else开始回到循环开始

时间:2017-02-14 21:24:25

标签: python loops while-loop infinite-loop

x=0
y=0

while 1==1:

    while y!=5:
        y=y+1
        print(str(x) + str(y))


    else:
        x=x+1
        #NOW GO TO WHILE 1==1 AND DO THAT AGAIN 

此代码应打印01; 02; 03; 04; 05,然后打印11; 12; 13; 14; 15。但实际上它只进行了前五次打印,因为我不知道如何在else:之后再次开始。

编辑:我很抱歉,我试图让代码更容易理解,而我犯了一些错误,这不是一个真正的问题。

5 个答案:

答案 0 :(得分:2)

这是一个与你的结构类似的工作代码:

x = 0
y = 0

while x != 2:
    while y != 5:
        y = y + 1
        print(str(x) + str(y))
    else:
        y = 0
        x = x + 1

但请不要这样做。相反:

for x in range(2):
    for y in range(5):
        print '%d%d' % (x,y+1)

答案 1 :(得分:0)

我想说一个更好的方法是做一个嵌套的for循环。

答案 2 :(得分:0)

from itertools import count

for x in count():
    [print('{}{}'.format(x, y)) for y in range(1, 6)]

它是Pythonic(希望这不是你的作业)。

答案 3 :(得分:0)

只需删除else:并使用格式化打印即可避免打印总和。

更好的代码版本是:

x = 0
while 1 == 1:
    y = 1
    while y <= 5:
        print '%d%d' % (x,y)
        y = y+1
    x = x+1

答案 4 :(得分:0)

首先是你的代码输出:

1
2
3
4
5

然后停止。你要的是这个:

01
02
03
04
05
11
12
13
[...]

要获得此输出,您需要一个无限循环,该循环不断递增x以使用以下代码开始:

x = -1
while True:
    x += 1

然后你需要一个循环,它将y从1增加到5并打印x和y的字符串连接:

for y in range(5):
    print(str(x) + str(y+1))

将for循环嵌入while循环中,然后瞧!

x = -1
while True:
    x += 1
    for y in range(5):
        print(str(x) + str(y+1))