您现在的位置是:首页 > 技术教程 正文

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. (1)以 def 开头,后接定义函数的名称和圆括号(),以冒号结尾
  2. (2)圆括号()可为空,也可以传入参数
  3. (3)定义函数的内容,与def有缩进关系
  4. (4)调用自定义的函数的基本格式为:定义函数的名称();若圆括号()为空,调用时,也为空,若若圆括号()不为空,调用时需传入参数
  5. (5)return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

3.引入库

  1. import turtle as t
  2. from turtle import *
  3. import random as r
  4. import time

4.定义画彩灯函数

  1. #定义画彩灯的函数
  2. def drawlight():
  3. if r.randint(0,30) == 0: #randint用来生成随机数
  4. color('tomato') #颜色()
  5. circle(6) #根据半径radius绘制extent角度的弧形
  6. elif r.randint(0,30) == 1:
  7. color('orange') #颜色()
  8. circle(3)
  9. else:
  10. linewidth = 5 #线型
  11. color('dark green') #颜色

 5.定义画圣诞树的函数

  1. #定义画圣诞树的函数
  2. def tree(d,s): #定义函数 树
  3. if d <= 0: return #返回函数的返回值
  4. forward(s) #向前
  5. tree(d-1, s * .8)
  6. right(120) #方向 向右
  7. tree(d-3, s * .5)
  8. drawlight()
  9. right(120)
  10. tree(d-3, s * .5)
  11. right(120)
  12. backward(s) #向后

 6.定义树下面小装饰的函数

  1. #定义树下面小装饰的函数
  2. def xzs():
  3. for i in range(200): #范围
  4. a = 200-400* r.random() # random模块用于生成随机数
  5. b = 10 -20* r.random()
  6. up()
  7. forward(b) #向前
  8. left(90) #左边
  9. forward(a)
  10. down() #向下
  11. if r.randint(0,1) == 0:
  12. color('tomato')
  13. else:
  14. color('wheat')
  15. circle(2) #圆
  16. up()
  17. backward(a)
  18. right(90)
  19. backward(b)

7.定义一个画雪花的函数 

  1. #定义一个画雪花的函数
  2. def drawsnow():
  3. t.hideturtle() #这个方法是用来使Turtle隐身的。
  4. t.pensize(2) #pensize(数字)可以设置画笔的宽度
  5. for i in range(200):
  6. t.pencolor("white")
  7. t.penup()
  8. t.setx(r.randint(-350,350)) #将当前x轴移动到指定位置
  9. t.sety(r.randint(-100,350)) #将当前y轴移动到指定位置
  10. t.pendown() #放下画笔
  11. dens = 6
  12. snowsize = r.randint(1,10) #生成随机数
  13. for j in range(dens):
  14. t.forward(int(snowsize))
  15. t.backward(int(snowsize))
  16. t.right(int(360/dens))

 8.画五角星

  1. #画五角星
  2. for i in range(5):
  3. forward(n/5)
  4. right(144)
  5. forward(n/5)
  6. left(72)
  7. end_fill()
  8. right(126)
  9. color("dark green")
  10. backward(n * 4.8)

 9.写文字

  1. #写文字
  2. t.color("dark red", "red")
  3. t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
  4. #写 "Merry Christmas" 使成一条直线 居中 字体 似手写的字体 40 粗体

10.全部源代码

  1. import turtle as t
  2. from turtle import *
  3. import random as r
  4. import time
  5. #定义几个函数先
  6. #定义画彩灯的函数
  7. def drawlight():
  8. if r.randint(0,30) == 0:
  9. color('tomato')
  10. circle(6)
  11. elif r.randint(0,30) == 1:
  12. color('orange')
  13. circle(3)
  14. else:
  15. linewidth = 5
  16. color('dark green')
  17. #定义画圣诞树的函数
  18. def tree(d,s):
  19. if d <= 0: return
  20. forward(s)
  21. tree(d-1, s * .8)
  22. right(120)
  23. tree(d-3, s * .5)
  24. drawlight()
  25. right(120)
  26. tree(d-3, s * .5)
  27. right(120)
  28. backward(s)
  29. #定义树下面小装饰的函数
  30. def xzs():
  31. for i in range(200):
  32. a = 200-400* r.random()
  33. b = 10 -20* r.random()
  34. up()
  35. forward(b)
  36. left(90)
  37. forward(a)
  38. down()
  39. if r.randint(0,1) == 0:
  40. color('tomato')
  41. else:
  42. color('wheat')
  43. circle(2)
  44. up()
  45. backward(a)
  46. right(90)
  47. backward(b)
  48. #定义一个画雪花的函数
  49. def drawsnow():
  50. t.hideturtle()
  51. t.pensize(2)
  52. for i in range(200):
  53. t.pencolor("white")
  54. t.penup()
  55. t.setx(r.randint(-350,350))
  56. t.sety(r.randint(-100,350))
  57. t.pendown()
  58. dens = 6
  59. snowsize = r.randint(1,10)
  60. for j in range(dens):
  61. t.forward(int(snowsize))
  62. t.backward(int(snowsize))
  63. t.right(int(360/dens))
  64. n=100.0
  65. t.pensize(10)
  66. speed("fastest")
  67. t.screensize(800,600, "black")
  68. left(90)
  69. forward(3 * n)
  70. color("orange", "yellow")
  71. begin_fill()
  72. left(126)
  73. #画五角星
  74. for i in range(5):
  75. forward(n/5)
  76. right(144)
  77. forward(n/5)
  78. left(72)
  79. end_fill()
  80. right(126)
  81. color("dark green")
  82. backward(n * 4.8)
  83. #调用画树的函数
  84. tree(15 , n)
  85. backward(n/2)
  86. xzs()
  87. #写文字
  88. t.color("dark red", "red")
  89. t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
  90. # 调用雪花函数
  91. drawsnow()
  92. t.done() #收笔

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

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜