首页 > 其他 > 详细

菱形--for循环解决

时间:2018-08-04 10:54:45      阅读:139      评论:0      收藏:0      [点我收藏+]
 1 ‘‘‘
 2 正常菱形,不能使用一个一个打印,那就没什么意思,这里使用的是对称,也可以使用坐标的方式,如第四版
 3    *
 4   ***
 5  *****
 6 *******
 7  *****
 8   ***
 9    *
10 
11 ‘‘‘
12 # 第一版 繁琐的
13 n = 7
14 e = -(n//2)
15 for i in range(e,1-e): # [-3,3]
16     #print(-i * ‘ ‘ + (n - abs(-i) * 2) * ‘*‘) if i <= 0 else print((4-i)*‘ ‘+(n-2i) * ‘*‘)
17     if i <= 0:
18         print(-i *   + (n - 2 * (-i)) * *)
19     else:
20         print(i *   + (n - 2 * i) * *)
21 
22 # 第二版,优化版,只是把上个版本归纳了一下
23 n = 7
24 e = -(n//2)
25 
26 for i in range(e,1-e):
27     i = -i if i <= 0 else i
28     print(i *   + (n - 2 * i) * *)
29     
30 # 第三版 两重for 循环,降低效率
31 n = 7
32 e = n//2
33 for i in range(-e, 1+e): # -3,3
34     for j in range(1,n+1): # 1,7
35         if abs(i) < j < n - abs(i) + 1: #  3< j < 5  最左侧的点
36             print(* , end=‘‘)
37         else:
38             print( , end=‘‘)
39     print()
40           
41 # 第四版  利用了数学上的直线 阴影部分   |x|+|y|<4
42 for i in range(3, -4, -1): # 3,-3
43     print(abs(i) *  ,end=‘‘) # i = 3   3空    2 2空
44     for j in range(-3,4): # j = -3,-2,-1 ,0,1,2,3
45         if abs(i) + abs(j) < 4:# 从上往下一个一个打印
46             print(*, end=‘‘)
47     print()
48     
49 print(-----------------------------------------------------)
50 
51 
52 
53 for i in range(-3, 4): # 3,-3
54     print(abs(i) *  ,end=‘‘) # i = 3   3空    2 2空 -1 1空 0 0
55     for j in range(-3,4): # j = -3,-2,-1 ,0,1,2,3
56         if abs(i) + abs(j) < 4:#   x + y <4 加绝对值,就是菱形
57             print(*, end=‘‘)
58     print()

 

菱形--for循环解决

原文:https://www.cnblogs.com/JerryZao/p/9417314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!