如何在循环完成后每次打印字符

How to print character every time after a loop is completed

我在打印以下图案时遇到问题,不知道如何解决。

注意:必须使用for和while循环。

我正在尝试实现如下模式:

0
1
####
2
3
####
4
5
####

但我得到:

0
1
####
1
2
####
2
3
####
3
4
####

我使用的代码是:

n = 0
for z in range(10):
    while n < 2:
        print(z)
        z += 1
        n += 1
    print("####")
    n = 0

你只需要一个循环。您可以选择 whilefor

版本while

n = 0
while n < 6:
    print(n)
    print(n+1)
    print('####')
    n += 2

版本for

for n in range(0, 6, 2):
    print(n)
    print(n+1)
    print('####')

如果你真的想使用两个循环(如果你想在 #### 之间打印超过 2 个数字的系列,可能会有用):

for n in range(0, 6, 2):
    for z in range(2):
        print(n+z)
    print('####')

输出:

0
1
####
2
3
####
4
5
####

请小心,因为每次 with 循环结束时 z 都会获取 range() 中的值。 mozway 是对的,但我认为 n 应该从 1:

开始
n = 1
while n < 6:
    print(n)
    print(n+1)
    print('####')
    n += 2

问题的发生是因为在 z += 1 中你假设你正在改变 for z in range(10): 中的 z 值,但在这个 for 循环中,每次迭代中 z 的值是[0,1,2,3,4] 列表中的下一个序列,因此它会丢弃您所做的 z += 1 操作,因此它会重复 #####.

之后的数字

这个问题的解决方案是做这样的事情,检查 if 语句中的 n 是否为 2,并且不要更改 z 的值:

n = 0
for z in range(10):
    print(z)
    n += 1
    if (n==2):
        print("####")
        n = 0

这将打印:

0
1
####
2
3
####
4
5
####
6
7
####
8
9
####