教你使用Python画圣诞树做浪漫的程序员
作者:网络豆 时间:2023-03-19 21:39:02
1.turtle库
turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
2.python函数的定义规则
以 def 开头,后接定义函数的名称和圆括号(),以冒号结尾
圆括号()可为空,也可以传入参数
定义函数的内容,与def有缩进关系
调用自定义的函数的基本格式为:定义函数的名称();若圆括号()为空,调用时,也为空,若若圆括号()不为空,调用时需传入参数
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
3.引入库
import turtle as t
from turtle import *
import random as r
import time
4.定义画彩灯函数
#定义画彩灯的函数
def drawlight():
if r.randint(0,30) == 0: #randint用来生成随机数
color('tomato') #颜色()
circle(6) #根据半径radius绘制extent角度的弧形
elif r.randint(0,30) == 1:
color('orange') #颜色()
circle(3)
else:
linewidth = 5 #线型
color('dark green') #颜色
5.定义画圣诞树的函数
#定义画圣诞树的函数
def tree(d,s): #定义函数 树
if d <= 0: return #返回函数的返回值
forward(s) #向前
tree(d-1, s * .8)
right(120) #方向 向右
tree(d-3, s * .5)
drawlight()
right(120)
tree(d-3, s * .5)
right(120)
backward(s) #向后
6.定义树下面小装饰的函数
#定义树下面小装饰的函数
def xzs():
for i in range(200): #范围
a = 200-400* r.random() # random模块用于生成随机数
b = 10 -20* r.random()
up()
forward(b) #向前
left(90) #左边
forward(a)
down() #向下
if r.randint(0,1) == 0:
color('tomato')
else:
color('wheat')
circle(2) #圆
up()
backward(a)
right(90)
backward(b)
7.定义一个画雪花的函数
#定义一个画雪花的函数
def drawsnow():
t.hideturtle() #这个方法是用来使Turtle隐身的。
t.pensize(2) #pensize(数字)可以设置画笔的宽度
for i in range(200):
t.pencolor("white")
t.penup()
t.setx(r.randint(-350,350)) #将当前x轴移动到指定位置
t.sety(r.randint(-100,350)) #将当前y轴移动到指定位置
t.pendown() #放下画笔
dens = 6
snowsize = r.randint(1,10) #生成随机数
for j in range(dens):
t.forward(int(snowsize))
t.backward(int(snowsize))
t.right(int(360/dens))
8.画五角星
#画五角星
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)
9.写文字
#写文字
t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
#写 "Merry Christmas" 使成一条直线 居中 字体 似手写的字体 40 粗体
10.全部源代码
import turtle as t
from turtle import *
import random as r
import time
#定义几个函数先
#定义画彩灯的函数
def drawlight():
if r.randint(0,30) == 0:
color('tomato')
circle(6)
elif r.randint(0,30) == 1:
color('orange')
circle(3)
else:
linewidth = 5
color('dark green')
#定义画圣诞树的函数
def tree(d,s):
if d <= 0: return
forward(s)
tree(d-1, s * .8)
right(120)
tree(d-3, s * .5)
drawlight()
right(120)
tree(d-3, s * .5)
right(120)
backward(s)
#定义树下面小装饰的函数
def xzs():
for i in range(200):
a = 200-400* r.random()
b = 10 -20* r.random()
up()
forward(b)
left(90)
forward(a)
down()
if r.randint(0,1) == 0:
color('tomato')
else:
color('wheat')
circle(2)
up()
backward(a)
right(90)
backward(b)
#定义一个画雪花的函数
def drawsnow():
t.hideturtle()
t.pensize(2)
for i in range(200):
t.pencolor("white")
t.penup()
t.setx(r.randint(-350,350))
t.sety(r.randint(-100,350))
t.pendown()
dens = 6
snowsize = r.randint(1,10)
for j in range(dens):
t.forward(int(snowsize))
t.backward(int(snowsize))
t.right(int(360/dens))
n=100.0
t.pensize(10)
speed("fastest")
t.screensize(800,600, "black")
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)
#调用画树的函数
tree(15 , n)
backward(n/2)
xzs()
#写文字
t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
# 调用雪花函数
drawsnow()
t.done() #收笔
来源:https://blog.csdn.net/yj11290301/article/details/128239545
标签:Python,圣诞树,圣诞节
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python利用for循环打印星号三角形的案例
2022-09-20 22:22:00
![](https://img.aspxhome.com/file/2023/2/112992_0s.jpg)
浅谈MySql update会锁定哪些范围的数据
2024-01-26 21:40:34
![](https://img.aspxhome.com/file/2023/9/113979_0s.jpg)
关于Python作用域自学总结
2023-11-02 12:19:53
![](https://img.aspxhome.com/file/2023/7/83747_0s.jpg)
如何利用数据库内容建立一个下拉式列表?
2010-01-01 15:46:00
Golang 中的 条件变量(sync.Cond)详解
2024-04-25 15:28:32
vue源码之批量异步更新策略的深入解析
2024-05-09 15:21:30
![](https://img.aspxhome.com/file/2023/2/126442_0s.png)
vue实现拖拽交换位置
2024-04-30 08:45:51
![](https://img.aspxhome.com/file/2023/7/132987_0s.gif)
PHP PDOStatement::errorCode讲解
2023-06-11 12:40:23
python中SSH远程登录设备的实现方法
2023-10-24 02:30:58
![](https://img.aspxhome.com/file/2023/7/80787_0s.png)
使用dreamhost空间实现MYSQL数据库备份方法
2024-01-27 23:36:22
一篇文章搞定Python操作文件与目录
2021-03-25 19:30:58
![](https://img.aspxhome.com/file/2023/8/124348_0s.jpg)
python实现简单通讯录管理系统
2021-05-02 10:41:23
Python使用cookielib模块操作cookie的实例教程
2021-12-21 09:18:57
![](https://img.aspxhome.com/file/2023/4/102894_0s.png)
Django接收post前端返回的json格式数据代码实现
2022-09-30 22:21:22
access改mdb为asp所带来的灾难 附mdb防下载方法
2011-03-03 11:07:00
Python使用matplotlib简单绘图示例
2023-11-03 01:33:00
![](https://img.aspxhome.com/file/2023/2/62902_0s.jpg)
python与c语言的语法有哪些不一样的
2021-07-09 17:47:35
oracle group by语句实例测试
2024-01-26 16:11:40
python 读取二进制 显示图片案例
2021-10-15 17:27:45
![](https://img.aspxhome.com/file/2023/6/77636_0s.jpg)
微信小程序日期选择器实例代码
2023-08-19 00:22:57
![](https://img.aspxhome.com/file/2023/7/56087_0s.png)