python数字三角形

根据输入的行数来确定打印多少行,若为负数则重新输入,若为0则结束程序
案例 输入3
打印1
222
333333
为等腰三角形

本题最多是9行吗???
输入加强了判断功能,输出只要一行就能搞定:

Error = '输入错误,请重新输入!'
while True:
    try:
        n = int(input('请输入一个正整数n(0退出):'))
    except:
        print(Error)
        continue
    if 1<=n<=9:
        break
    elif n==0:
        exit(0)
    else:
        print(Error)
        
for i in range(1,n+1):
    print(f'{(str(i)*(i*2-1)):^{n*2-1}}')

height = int(input('请输入你想打印几行三角形:'))
if height ==0:
    exit
if height <0:
    height = int(input('重新输入:'))
else:
    i = 1
    while height:
            print(' '*(height-1),str(i)*(1+(i-1)*2))
            height -= 1
            i += 1


while True:
  n = int(input())
  if n<0:continue
  if n==0:break
  for i in range(1,n+1):
    print(' '*(n-i),end='')
    for j in range(2*i-1):
      print(i,end='')
    print()