Вы можете думать об этом как о квадрате, где каждая позиция строки / столбца определяет, какую функцию вызывать.Чтобы получить треугольник, вы должны выяснить связь между строкой и столбцом каждой позиции, которая даст желаемый результат.В вашем примере вам нужна звезда () в позициях, где столбец больше, чем количество оставшихся строк.Пройдя по строкам в обратном порядке, вы сразу получите это соотношение:
size = 4
for remainingRows in range(size,0,-1):
for column in range(1,size+1):
if column >= remainingRows: star()
else: space()
newline()
Еще один способ приблизиться к этому - рассмотреть количество звездочек, которые необходимо напечатать в каждой строке, и вызвать пробел () для оставшейся частилиния (перед печатью звезд).
size = 4
for line in range(1,size+1):
for _ in range(size-line): space()
for _ in range(line): star()
newline()