Python编程 圣诞树教程 (附代码)程序员的浪漫
admin 阅读: 2024-03-21
后台-插件-广告管理-内容页头部广告(手机) |
作者简介:一名云计算人员、每天分享Python和云计算的学习经验、和学习笔记。
座右铭:低头赶路,敬事如仪
个人主页:网络豆的主页
目录
前言
一.python 做圣诞树
1.turtle库
2.python函数的定义规则
2.引入库
3.定义画彩灯函数
4.定义画圣诞树的函数
5.定义树下面小装饰的函数
6.定义一个画雪花的函数
7.画五角星
8.写文字
9.全部源代码
前言
本章将会讲解Python编程 实现圣诞树效果!
一.python 做圣诞树
1.turtle库
turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
2.python函数的定义规则
- (1)以 def 开头,后接定义函数的名称和圆括号(),以冒号结尾
- (2)圆括号()可为空,也可以传入参数
- (3)定义函数的内容,与def有缩进关系
- (4)调用自定义的函数的基本格式为:定义函数的名称();若圆括号()为空,调用时,也为空,若若圆括号()不为空,调用时需传入参数
- (5)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() #收笔
创作不易,求关注,点赞,收藏,谢谢~
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |