如下所示:
1
2
3
4
5
6
7
8
9
10
|
a = int ( input ( "請輸入菱形行數:" )) m = a #空格 d = a #倒三角 for i in range ( 1 , a + 1 ): # 先打印正三角 print ( " " * (m - 1 ), "*" * ( 2 * i - 1 )) #2個*參數: 第一個是:空格 第二個是: *根據規律組成 m - = 1 if i = = a: # 臨界點,開始打印倒三角 for y in range ( 1 , a): print ( " " * y, "*" * ( 2 * d - 3 )) #2個*參數: 第一個是:空格 第二個是: *根據規律組成 d - = 1 #設置-1 |
1
2
3
4
5
6
7
8
9
10
|
a = 4 #指定行數 b = a #空格 c = a #倒三角 for i in range ( 1 ,a + 1 ): print ( " " * (b - 1 ), "%d" % b * ( 2 * i - 1 )) b - = 1 if i = = a: # 臨界點,開始打印倒三角 for y in range ( 1 ,a): print ( " " * y, "%d" % (y + 1 ) * ( 2 * c - 3 )) c - = 1 |
1
2
3
4
5
6
7
8
9
10
11
12
|
a = int ( input ( "請輸入菱形行數:" )) m = a #空格 d = a #倒三角 print ( " " * (a - 1 ), "*" ) #第一個是:空格, 第二個是:打印一個* for i in range ( 2 , a + 1 ): # 先打印正三角 print ( " " * (m - 1 ) + "*" + " " * ( 2 * i - 3 ) + "*" ) #1個*參數: 第一個是:空格和*根據規律組成 m - = 1 if i = = a: # 臨界點,開始打印倒三角 for y in range ( 2 , a): print ( " " * y + "*" + " " * ( 2 * d - 5 ) + "*" ) #1個*參數: 第一個是:空格和*根據規律組成 d - = 1 #設置-1 print ( " " * a + "*" ) #打印最后一個* |
補充知識:使用Python打印一些圖形,主要是找到循環規律
打印菱形
1
2
3
4
5
6
|
a = int ( input ()) e = a / / 2 for i in range (e, - 1 , - 1 ): print ( ' ' * i, '*' * (a - 2 * i), ' ' * i) for i in range ( 1 ,e + 1 ): print ( ' ' * i, '*' * (a - 2 * i), ' ' * i) |
改進版本,找到規律,使用abs函數
1
2
3
4
5
|
a = int ( input ( '>>>' )) e = a / / 2 for i in range ( - e, e + 1 ): j = abs (i) print ( ' ' * j + '*' * (a - j * 2 ) + ' ' * j) |
打印對頂三角
1
2
3
4
5
6
|
a = int ( input ( '>>>' )) e = a / / 2 for i in range (e + 1 ): print ( ' ' * i, (a - i * 2 ) * '*' , ' ' * i, sep = '') for i in range ( 1 , e + 1 ): print ( ' ' * (e - i), (i * 2 + 1 ) * '*' , ' ' * (e - i), sep = '') |
倒三角的打印,可以不用考慮*后面的空格,其實可以簡化
1
2
3
4
5
|
a = int ( input ( '>>>' )) e = a / / 2 for i in range ( - e, e + 1 ): j = abs (i) print ( ' ' * (e - j) + '*' * (j * 2 + 1 )) |
打印一道閃電:
按照最笨的思路分三部分打印
1
2
3
4
5
6
7
|
a = int ( input ( '>>>' )) e = a / / 2 for i in range ( - e, 0 ): print ( ' ' * abs (i) + '*' * (a - e - abs (i))) print ( '*' * a) for i in range ( 1 , a - e): print ( ' ' * e + '*' * (a - e - i)) |
稍作改進
1
2
3
4
5
6
7
8
9
|
a = int ( input ( '>>>' )) e = a / / 2 for i in range ( - e, a - e): if i < 0 : print ( ' ' * abs (i) + '*' * (a - e - abs (i))) elif i > 0 : print ( ' ' * e + '*' * (a - e - i)) else : print ( '*' * a) |
打印正方形
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
for i in range (n): sepTop + = '\t*' sepMid + = '\t' else : sepMid + = '*' print (sepTop) for i in range (n - 1 ): print ( '\n' ) print (sepMid) else : print ( '\n' ) print (sepTop) print ( '=====================================' ) e = - n / / 2 for i in range (e,n + e): if i = = e or i = = n + e - 1 : print ( '*' * n) else : print ( '*' + ' ' * (n - 2 ) + '*' ) print ( '=====================================' ) |
以上這篇Python 使用雙重循環打印圖形菱形操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/hlx20080808/article/details/107576443