打印菱形、对角三角形、闪电
菱形
def rhom(n):
# 先打印上半部分
for i in range(1, n + 1, 2):
print(('*' * i).center(n))
# 再打印下半部分
for i in reversed(range(1, n, 2)):
print(('*' * i).center(n))
rhom(7)
# 把菱形当做一个坐标系,[-3, -2, -1, 0, 1, 2, 3]
for i in range(-3, 4):
# 取绝对值
x = -i if i < 0 else i
# 先打印空白,再打印符号
print(' ' * x + (7 - x*2) * '*')
*
***
*****
*******
*****
***
*
对顶三角形
n = 7
e = 7 // 2
for i in range(-3, 4):
x = -i if i < 0 else i
# 跟上面一样,先的打印空白,再打印符号
print(' '*(e-x) + (x*2 + 1)*'*')
def vert(n):
# 先打印上半部分
for i in reversed(range(1, n + 1, 2)):
print(('*' * i).center(n))
# 再打印下半部分
for i in range(3, n+1, 2):
print(('*' * i).center(n))
vert(7)
*******
*****
***
*
***
*****
*******
闪电
n = 7
e = 7 // 2
for i in range(-3, 4):
x = -i if i < 0 else i
# 上半部分
if i < 0:
print(' '*x + '*'*(4 + i))
# 由于这里跟上下都不一样,单独处理坐标系横轴
elif i == 0:
print('*' * n)
# 下半部分,先打印空白,这里空白字符长度都是7//2,再打印符号
else:
print(' '*e + '*'*(4 - i))
*
**
***
*******
***
**
*