Search code examples
pythonpython-3.xnested-loops

How to create patterns in Python using nested loops?


I am trying to create this pattern in Python:

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

I have to use a nested loop, and this is my program so far:

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

The problem is the first column doesn't show up, so this is what is displayed when I run it:

#
 #
  #
   #
    #
     #

This is the modified program:

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

but the result is:

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

How do I get them on the same row?


Solution

  • Replace this...:

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

    With this:

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

    Which outputs:

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

    It's just a simple mistake in the program logic.

    However, it is still better to do this:

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

    To avoid complications like this happening when using nested for loops, you can just use operators on the strings.