1

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?

1
  • You are not printing any start at the begining of each row. Commented Mar 9, 2014 at 19:39

4 Answers 4

3

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.

Sign up to request clarification or add additional context in comments.

Comments

2

Try this simpler method:

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

1 Comment

Your program works perfectly, but I'm required to use a nested loop structure. Thank you!
0

You forgot the second print "#". Put it before the inner loop.

Comments

0

Try something like this:

rows=int(input("Number")) 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("#")

1 Comment

To get an inverse result

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.