from sys import stdout
def forever(fun):
def inner():
print("循环")
while True:
n=input("请输入菱形上部的正三角的行数")
if n=="q" or n=="exit":
print("程序已退出")
break
fun(n)
return inner
def verify_number(fun):
def inner(n):
print("验证输入的有效性")
if isinstance(n,int) or n.isdigit(): # 判断字符串是否为纯整数组成
n=int(n)
fun(n)
else:
print("请输入整数")
return inner
@forever
@verify_number
def print_diamond(n):
for i in range(1,n+1):
for j in range(1,n-i+1):
stdout.write(" ")
for k in range(1,2*i-1+1):
stdout.write("*")
print()
for i in range(1,n-1+1):
for j in range(1,i+1):
stdout.write(" ")
for k in range(1,2*(n-i)-1+1):
stdout.write("*")
print()
print_diamond()
代码有点繁琐,我只是对着打了一遍