Home > Software design >  Unable to print hollow diamond pattern in python
Unable to print hollow diamond pattern in python

Time:01-17

Beginner to Programming

My code is below , the spaces within diamond is shown with 'B' and spaces outside diamond are shown with X.

n=5
for i in range(n):
  for j in range(n,i,-1):
    if j==i 1:
      print('*',end='')
      break
    print('X',end='')
  for j in range(i):
    print('B',end='')
  for j in range(i 1):
    if i==0:
      continue
    if j==i-1:
      print('*',end='')
      break
    print('B',end='')
  print('')
#Downward
for i in range(n-1):
  for j in range(i 2):
    if j==i 1:
      print('*',end='')
      break
    print('X',end='')
  for j in range(n-1,i 2,-1):
    print('B',end='')
  for j in range(n-1,i,-1):
    if i==n-2:
        break
    if j==i 1:
      print('*')
      break
    print('B',end='')
  print('')

Result:

XXXX*
XXX*B*
XX*BBB*
X*BBBBB*
*BBBBBBB*
X*BBBBB*

XX*BBB*

XXX*B*

XXXX*

Despite equal number of 'B' and 'X' , i don't know which part of code is introducing a space between lines.

CodePudding user response:

You can simply use it to print Diamond shape of the desired height.

row = int(input('Enter number of row: '))

# Upper part of hollow diamond
for i in range(1, row 1):
    for j in range(1,row-i 1):
        print(" ", end="")
    for j in range(1, 2*i):
        if j==1 or j==2*i-1:
            print("*", end="")
        else:
            print(" ", end="")
    print()

# Lower part of hollow diamond
for i in range(row-1,0, -1):
    for j in range(1,row-i 1):
        print(" ", end="")
    for j in range(1, 2*i):
        if j==1 or j==2*i-1:
            print("*", end="")
        else:
           

CodePudding user response:

So I found it,

  for j in range(n-1,i,-1):
    if i==n-2:
        break
    if j==i 1:
      print('*', end='') # <---This line had the problem
      break
    print('B',end='')
  •  Tags:  
  • Related