Python编程 圣诞树教程 (附代码)程序员的浪漫

news/2024/11/27 12:51:50/

  • 作者简介:一名在校计算机学生、每天分享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. (1)以 def 开头,后接定义函数的名称和圆括号(),以冒号结尾
  2. (2)圆括号()可为空,也可以传入参数
  3. (3)定义函数的内容,与def有缩进关系
  4. (4)调用自定义的函数的基本格式为:定义函数的名称();若圆括号()为空,调用时,也为空,若若圆括号()不为空,调用时需传入参数
  5. (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 = 6snowsize = 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 = 5color('dark green')#定义画圣诞树的函数
def tree(d,s):if d <= 0:  returnforward(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 = 6snowsize = 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()    #收笔

创作不易,求关注,点赞,收藏,谢谢~ 


http://www.ppmy.cn/news/2660.html

相关文章

02 stata入门【计量经济学及stata应用】

安装&#xff1a;建议直接在微信搜索&#xff0c;很多公众号有安装包资源及下载教程 不同版本在基本功能上无较大差异&#xff0c;一般为SE&#xff0c;更为专业MP&#xff0c;只是在处理变量个数或容量等存在不同 界面 历史命令&#xff1b;结果窗口&命令窗口&#xff1b…

MySQL——表的内容增删查改

文章目录表的增删改查一、Create1、单行全列插入2、多行数据指定列插入3、插入否则更新4、替换二、Retrieve&#x1f60a;(重点)2.1 select 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重2.2 where查询2.3 结果排序2.4 筛选分…

Qt-数据库开发-QTableView操作数据库(1)

Qt-数据库开发-QTableView操作数据库 文章目录Qt-数据库开发-QTableView操作数据库1、概述2、实现效果3、主要代码4、完整源代码更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;数据库开发 &#x1f448; 1、概述 这是通过学习Qt官方Demo产生的一个示例…

【Shell牛客刷题系列】SHELL22 处理文本

该系列是基于牛客Shell题库&#xff0c;针对具体题目进行查漏补缺&#xff0c;学习相应的命令。 刷题链接&#xff1a;牛客题霸-Shell篇。 该系列文章都放到专栏下&#xff0c;专栏链接为&#xff1a;《专栏&#xff1a;Shell》。欢迎关注专栏~ 本文知识预告&#xff1a; 本文…

C语言百日刷题第十三天

前言 今天是刷题第13天&#xff0c;放弃不难&#xff0c;但坚持一定很酷~ 临近期末&#xff0c;再刷一套模拟题 C语言百日刷题第十三天前言选择题判断题编程题选择题 1.若由定义int*p1,*p2,m5,n;以下赋值语句都正确的选项是&#xff08;&#xff09; A、p1&m;p2&n…

计算机毕业设计ssm+vue基本微信小程序的琴房管理系统 uniapp 小程序

项目介绍 随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,钢琴培训企业各种管理系统层出不穷,为钢琴培训企业琴房管理开发必要的系统,能够有效的提升管理效率。一直以来,钢琴培训企业琴房预约一直没有进行系统化的管理,学生无…

pytorch基础操作(三)梯度下降(小批量)计算线性回归

1、线性模型 线性假设是指⽬标&#xff08;房屋价格&#xff09;可以表⽰为特征&#xff08;⾯积和房龄&#xff09;的加权和&#xff0c;如下⾯的式⼦&#xff1a; price warea area wage age b. 其中: warea和wage 称为权重&#xff08;weight&#xff09;&#xff0c;…

数据挖掘与机器学习课程总结

2022.11月 文章目录一、引言1.1 数据中的知识发现包括哪几个步骤&#xff1f;(Knowledge Discovery from Data, KDD)1.2 数据挖掘应用二、学习的可行性2.1 Hoeffding 不等式&#xff08;Hoeffding’s Inequality&#xff09;2.2 用 Hoeffding 不等式说明学习的可行性三、数据和…