【问题标题】:Unable to print hollow diamond pattern in python无法在python中打印空心菱形图案
【发布时间】:2022-01-16 03:17:54
【问题描述】:

编程初学者

我的代码如下,菱形内的空格用'B'显示,菱形外的空格用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('')

结果:

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

XX*BBB*

XXX*B*

XXXX*

尽管 'B' 和 'X' 的数量相等,但我不知道代码的哪一部分在行之间引入了空格。

【问题讨论】:

    标签: python-3.x loops for-loop design-patterns


    【解决方案1】:

    您可以简单地使用它来打印所需高度的菱形。

    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:
               
    

    【讨论】:

    • 感谢您的代码,但我仍然很困惑为什么我的代码会在下部空心三角形上产生额外的空间。我尝试了 pythontutor.com,但仍然不知道当新行从下三角形开始时会产生额外空间。
    【解决方案2】:

    所以我找到了,

      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='')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多