利用的是turtle和random库
运行的比较慢,有很多不足大家可以告诉我谢谢
打包的代码在我的资源里解压之后运行exe即可
借鉴的是:这位大佬的
代码如下:
import turtle
import random
# 用到的是这个库
def drawlight(): # 定义画彩灯的方法
if random.randint(0, 50) == 0: # 如果觉得彩灯太多,可以把取值范围加大一些,对应的灯就会少一些
turtle.color('tomato') # 定义第一种颜色
turtle.circle(6) # 定义彩灯大小
elif random.randint(0, 50) == 1:
turtle.color('orange') # 定义第二种颜色
turtle.circle(6)
elif random.randint(0, 100) == 2:
turtle.color('purple') # 定义第二种颜色
turtle.circle(6) # 定义彩灯大小
else:
turtle.color('dark green') # 其余的随机数情况下画空的树枝
def tree(d, s): # 画树叶的
if d <= 0:
return
turtle.forward(s) # 向前移动
tree(d - 1, s * 0.8)
turtle.right(120) # 以角度向右转动
tree(d - 3, s * 0.5)
turtle.right(120)
tree(d - 3, s * 0.5)
drawlight()
turtle.right(120)
turtle.backward(s) # 向后移动
def drawsnow():
turtle.ht()
turtle.pensize(2)
for i in range(100): # 循环次数就是画多少个雪花
turtle.pencolor('white') # 雪花颜色
turtle.pu()
turtle.setx(random.randint(-350, 350))
turtle.sety(random.randint(-100, 350)) # 随机坐标
turtle.pd()
dens = 6 # 雪花瓣数
snowsize = random.randint(5, 10)
for j in range(dens):
turtle.forward(int(snowsize))
turtle.backward(int(snowsize))
turtle.right(int(360 / dens))
n = 100
turtle.speed('fastest') # 设置速度
turtle.screensize(bg='black') # 背景颜色
turtle.left(90) # 向左移动
turtle.forward(3 * n)
turtle.color("orange", "yellow")
turtle.left(126)
for i in range(5):
turtle.forward(n / 5)
turtle.right(144)
turtle.forward(n / 5)
turtle.left(72)
turtle.end_fill()
turtle.right(126)
turtle.color("dark green") # 树的颜色
turtle.backward(n * 4.8)
tree(15, n)
turtle.backward(n / 5)
drawsnow()
turtle.done()
效果如下: