在本篇文章里小编给大家整理的是关于python圣诞树代码的相关内容,有兴趣的朋友们可以学习下。
python圣诞树代码
1、简单的绘制圣诞树
新建tree1.py或者直接输入下面代码运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#声明树的高度 height = 5 #树的雪花数,初始为1 stars = 1 #以数的高度作为循环次数 for i in range (height): print (( ' ' * (height - i)) + ( '*' * stars)) stars + = 2 #输出树干 print (( ' ' * height) + '|' ) |
2、使用turtle绘制简单圣诞树
新建tree2py,输入以下代码
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#导入turtle库 import turtle #设置屏幕大小 screen = turtle.Screen() screen.setup( 800 , 600 ) #获取画笔并设置一些属性:圆形、红色、快 circle = turtle.Turtle() circle.shape( 'circle' ) circle.color( 'red' ) circle.speed( 'fastest' ) #抬起画笔 circle.up() #重新获取画笔 square = turtle.Turtle() #重新设置画笔属性:四方形、绿色、快 square.shape( 'square' ) square.color( 'green' ) square.speed( 'fastest' ) #重新抬起画笔 square.up() #跳到指定坐标位置 circle.goto( 0 , 280 ) #复制当前图形 circle.stamp() k = 0 for i in range ( 1 , 17 ): y = 30 * i for j in range (i - k): x = 30 * j square.goto(x, - y + 280 ) square.stamp() square.goto( - x, - y + 280 ) square.stamp() if i % 4 = = 0 : x = 30 * (j + 1 ) circle.color( 'red' ) circle.goto( - x, - y + 280 ) circle.stamp() circle.goto(x, - y + 280 ) circle.stamp() k + = 2 if i % 4 = = 3 : x = 30 * (j + 1 ) circle.color( 'yellow' ) circle.goto( - x, - y + 280 ) circle.stamp() circle.goto(x, - y + 280 ) circle.stamp() square.color( 'brown' ) for i in range ( 17 , 20 ): y = 30 * i for j in range ( 3 ): x = 30 * j square.goto(x, - y + 280 ) square.stamp() square.goto( - x, - y + 280 ) square.stamp() turtle.exitonclick() |
运行:
3、使用Turtle绘制复杂圣诞树
新建tree3.py,输入以下代码
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#导入所依赖的库 from turtle import * import random import time n = 80.0 #设置速度快 speed( "fastest" ) #背景颜色 海贝壳色,偏粉色 screensize(bg = 'seashell' ) left( 90 ) forward( 3 * n) color( "orange" , "yellow" ) begin_fill() left( 126 ) for i in range ( 5 ): forward(n / 5 ) right( 144 ) forward(n / 5 ) left( 72 ) end_fill() right( 126 ) color( "dark green" ) backward(n * 4.8 ) def tree(d, s): if d < = 0 : return forward(s) tree(d - 1 , s * . 8 ) right( 120 ) tree(d - 3 , s * . 5 ) right( 120 ) tree(d - 3 , s * . 5 ) right( 120 ) backward(s) tree( 15 , n) backward(n / 2 ) for i in range ( 200 ): a = 200 - 400 * random.random() b = 10 - 20 * random.random() up() forward(b) left( 90 ) forward(a) down() if random.randint( 0 , 1 ) = = 0 : color( 'tomato' ) else : color( 'wheat' ) circle( 2 ) up() backward(a) right( 90 ) backward(b) time.sleep( 60 ) |
运行: