首页 > 解决方案 > 在 Python 中打印直角三角形的问题

问题描述

我正在尝试学习 Python 基础知识。我正在设计一个可以打印三角形的代码,代码贴在下面。程序的预期输出必须是从右侧开始的三角形,而不是从左侧开始修改代码的哪一部分以获得预期输出。

程序的输出不应如下所示

在此处输入图像描述

我希望输出是这样的

在此处输入图像描述

对此的任何帮助都将受到高度赞赏。谢谢

while True:
  n = int(input("enter a number between 0 and 10:"))
  if 0 <= n <= 10:
    break
  print('try again')

rows = n
for num in range(rows+1):
  for i in range(1, num+1):
      if num % 2 == 0:
        #print(end="" '#')
        print('#',end="")
      else:
        #print(num)  
        print(num,end="")  

print(" ")

标签: pythonarraysvariablesmultidimensional-array

解决方案


我们可以使用 alist来创建三角形的元素(当它是奇数时,只需将值附加到 number 次,否则将字符 '#' 次数作为描述所述),然后使用for循环打印它们,如下所示:

while True:
  n = int(input("enter a number between 0 and 10:"))
  if 0 <= n <= 10:
    break
  print('try again')

result = [idx*'#' if idx % 2 == 0 else f'{idx}'*idx  for idx in range(1, n+1) ]
for i in range(len(result)):
    print(' '*(n-i-1), result[i])

结果将是:

      1
     ##
    333
   ####
  55555

希望这可以帮到你 :)


推荐阅读