要求绘制空心菱形,在此基础上,还可以添加其他要求,如尽可能少地使用printf语句,或者由键盘输入正数n,并绘制出有2*n+1行的空心菱形图案。就是说还要可以指定菱形图案的大小,用行数来控制。
下面直接上代码:
########################
def lingxing(n):
# 外层循环控制行数,从控制台输入的参数n即为菱形上半个三角形的行数
for i in range(1, n + 1):
for j in range(1, (n + i - 1) + 1):
if j == n + 1 - i or j == n - 1 + i:
print("* ", end="")
else:
print(" ", end="")
print()
# 打印下半个三角形
# 外层循环控制行数,由于下半个三角形比上面的少一行,所以循环变量i的最大值为n-1
for i in range(1, n):
for j in range(1, (2 * n - 1 - i) + 1):
if j == i + 1 or j == 2 * n - 1 - i:
print("* ", end="")
else:
print(" ", end="")
print()
if __name__ == "__main__":
n = int(input("请输入菱形对称轴的行数n: "))
lingxing(n)
########################
执行结果如下:
请输入菱形对称轴的行数n: 6
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
输入的N最少要>2,不然不成图形。
________________END______________
网友评论