python圣诞树编写实例详解


在本篇文章里小编给大家整理的是关于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()

运行:

Python客栈送红包、纸质书

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 )

运行:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM