如何使用嵌套循环在Python中创建图案?

1 投票
4 回答
18926 浏览
提问于 2025-04-17 21:33

我正在尝试在Python中创建这个图案:

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

我需要使用嵌套循环,这是我目前的程序:

steps=6
for r in range(steps):
    for c in range(r):
        print(' ', end='')
    print('#')

问题是第一列没有显示出来,所以我运行时显示的是:

#
 #
  #
   #
    #
     #

这是修改后的程序:

steps=6
for r in range(steps):
    print('#')
    for c in range(r):
        print(' ', end='')
    print('#')

但是结果是:

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

我该如何让它们在同一行呢?

4 个回答

0

试试这样做:

rows=int(input("请输入行数")) s=rows//2 for r in range(rows): print("#",end="") print() for r in range(rows): while s>=0: print("#"+" "*(s)+"#") s=s-1 print("#")

0

你忘记了第二个打印的“#”。把它放在内层循环之前。

2

试试这个更简单的方法:

steps=6
for r in range(steps):
    print '#' + ' ' * r + '#'
3

把这个...:

steps=6
for r in range(steps):
    for c in range(r):
        print(' ', end='')
    print('#')

换成这个:

steps=6
for r in range(steps):
    print('#', end='')
    for c in range(r):
        print(' ', end='')
    print('#')

这样输出:

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

这只是程序逻辑中的一个简单错误。

不过,最好还是这样做:

steps=6
for r in range(steps):
    print('#' + (' ' * r) + '#')

为了避免在使用嵌套的 for 循环时出现这样的复杂情况,你可以直接对字符串使用运算符。

撰写回答