用python打印菱形的实操方法和代码

时间:2022-09-14 07:27:26

python怎么打印菱形?下面给大家带来三种方法:

第一种

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
rows = int(input('请输入菱形边长:\n'))
 
row = 1
 
while row <= rows:
 
  col = 1   # 保证每次内循环col都从1开始,打印前面空格的个数
 
  while col <= (rows-row): # 这个内层while就是单纯打印空格
 
    print(' ', end='') # 空格的打印不换行
 
    col += 1
 
  print(row * '* ') # 每一行打印完空格后,接着在同一行打印星星,星星个数与行数相等,且打印完星星后print默认换行
 
  row += 1
 
 
 
bottom = rows-1
 
while bottom > 0:
 
  col = 1   # 保证每次内循环col都从1开始,打印前面空格的个数
 
  while bottom+col <= rows:
 
    print(' ', end='') # 空格的打印不换行
 
    col += 1
 
  print(bottom * '* ') # 每一行打印完空格后,接着在同一行打印星星,星星个数与行数相等,且打印完星星后print默认换行
 
  bottom -= 1

输出结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
请输入菱形边长:
 
5
 
  *
 
  * *
 
 * * *
 
 * * * *
 
* * * * *
 
 * * * *
 
 * * *
 
  * *
 
  *

第二种

?
1
2
3
4
5
6
7
8
9
s = '*'
 
for i in range(1, 8, 2):
 
  print((s * i).center(7))
 
for i in reversed(range(1, 6, 2)):
 
  print((s * i).center(7))

输出结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
  *
 
 ***
 
 *****
 
*******
 
 *****
 
 ***
 
  *

第三种

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def stars(n):
 
  RANGE1 = [2*i+1 for i in range(n)]
 
  RANGE2 = [2*i+1 for i in range(n)[::-1]][1:]
 
  RANGE = RANGE1 + RANGE2
 
  RANGE_1 = [i for i in range(n)[::-1]]
 
  RANGE_2 = [i for i in range(n)[1:]]
 
  RANGE_12 = RANGE_1 + RANGE_2
 
  for i in range(len(RANGE)):
 
    print (' '*RANGE_12[i] + '*'*RANGE[i])
 
if __name__ == "__main__":
 
  stars(5)

输出结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  *
 
  ***
 
 *****
 
 *******
 
*********
 
 *******
 
 *****
 
  ***
 
  *

以上就是关于用python来画出菱形的方法总结,感谢大家的阅读和对服务器之家的支持。