문제

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?

도움이 되었습니까?

해결책

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.

다른 팁

Try this simpler method:

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

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

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("#")

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top