嵌套while循环绘制模式

时间:2017-02-15 18:58:12

标签: python loops while-loop

您好,我想知道如何使用嵌套循环在输出上绘制此模式

##
# #
#  #
#   #
#    #
#     #
#      #
#       #

我发现如何在没有嵌套的循环中完成它,但我很好奇如何使用嵌套的while循环来绘制它。

while r < 7:
    print("#{}#".format(r * " "))
    r = r + 1

4 个答案:

答案 0 :(得分:1)

如果你打算在python中这样做 你不需要嵌套循环。

编辑有两个循环

#!/bin/python
import sys

n = int(raw_input().strip())
for i in xrange(n):
    sys.stdout.write('#')
    for j in xrange(i):
        sys.stdout.write(' ')
    sys.stdout.write('#')
    print

答案 1 :(得分:1)

以下是您实际问题的答案:使用两个嵌套的while循环。

num_spaces_wanted = 0
while num_spaces_wanted < 7:
    print('#', end='')
    num_spaces_printed = 0
    while num_spaces_printed < num_spaces_wanted:
        print(' ', end='')
        num_spaces_printed += 1
    print('#')
    num_spaces_wanted += 1

正如打印语句所示,这适用于Python 3.x.将它们调整为2.x或添加行from __future__ import print_function以获得3.x样式打印。

答案 2 :(得分:0)

有许多其他答案已经正确回答了这个问题,但我认为以下内容以概念上更简单的方式进行,并且应该更容易学习。

spaces = 0

while spaces < 8:
    to_print = "#"

    count = 0
    while count < spaces:
        to_print += " "
        count += 1

    to_print += "#"

    print to_print
    spaces += 1

答案 3 :(得分:-1)

嵌套循环的最有效解决方案:

#!/bin/python

n = int(raw_input().strip())
for i in xrange(n):
    string = "#" + i * " " + "#"
    print string
    for -1 in xrange(n)
    # Do nothing