您好,我想知道如何使用嵌套循环在输出上绘制此模式
##
# #
# #
# #
# #
# #
# #
# #
我发现如何在没有嵌套的循环中完成它,但我很好奇如何使用嵌套的while循环来绘制它。
while r < 7:
print("#{}#".format(r * " "))
r = r + 1
答案 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