菱形code
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) * '*')
* *** ***** ******* ***** *** *
对顶三角形class
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)
******* ***** *** * *** ***** *******
闪电sed
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))
* ** *** ******* *** ** *