user3307366 user3307366 - 2 months ago 16
Python Question

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?

Answer

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.