菱形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))
* ** *** ******* *** ** *