1 引言

又到了让人开心的周末啦,细细一算,还有一周马上就圣诞节啦!

各位小伙伴们是不是都蠢蠢欲动啦,希望大家圣诞节都收获美美的故事呀!

今天我们来教大家怎么使用Python画圣诞树。。。

2 圣诞树黑白版本

初级版本当然就是黑白字符简易效果啦,代码如下:

def demo1():height = 5stars = 1for i in range(height):print((' ' * (height - i)) + ('*' * stars))stars += 2print((' ' * height) + '|')if __name__ == "__main__":demo1()

运行效果如下:

短小精致的字符效果版圣诞树气质一下子就上来了。。。

3 海龟绘图

哈哈哈,看到黑白版圣诞树,是不是有种被欺骗的感觉,和我们想象的彩色世界是不一样滴。
好嘛,满足你的需求,我们接着使用turtle包来实现彩色版圣诞树。

turtle包本身是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。

很多同学不太熟悉turtle(海龟绘图)包,我们来看一段绘制长方形的代码,来对其进行直观的认识。

# 导入turtle包的所有内容:
from turtle import *
# 设置笔刷宽度:
width(4)
# 前进:
forward(200)
# 右转90度:
right(90)
# 笔刷颜色:
pencolor('red')
forward(100)
right(90)
pencolor('green')
forward(200)
right(90)
pencolor('blue')
forward(100)
right(90)
# 调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
done()

在命令行运行上述代码,会自动弹出一个绘图窗口,然后绘制出一个长方形:


从上述代码可以看出,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。

调用width()函数可以设置笔刷宽度,调用pencolor()函数可以设置颜色。更多操作请参考turtle库的说明。

绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。

4 圣诞树彩色版本

来了,再简单介绍玩海龟画图的基本操作之后,我们来画我们彩色版的圣诞树,代码如下:


def demo2():screen = turtle.Screen()screen.setup(375, 700)circle = turtle.Turtle()circle.shape('circle')circle.color('red')circle.speed('fastest')circle.up()square = turtle.Turtle()square.shape('square')square.color('green')square.speed('fastest')square.up()circle.goto(0, 280)circle.stamp()k = 0for i in range(1, 13):y = 30 * ifor j in range(i - k):x = 30 * jsquare.goto(x, -y + 280)square.stamp()square.goto(-x, -y + 280)square.stamp()if i % 4 == 0:x = 30 * (j + 1)circle.color('red')circle.goto(-x, -y + 280)circle.stamp()circle.goto(x, -y + 280)circle.stamp()k += 3if i % 4 == 3:x = 30 * (j + 1)circle.color('yellow')circle.goto(-x, -y + 280)circle.stamp()circle.goto(x, -y + 280)circle.stamp()square.color('brown')for i in range(13, 17):y = 30 * ifor j in range(2):x = 30 * jsquare.goto(x, -y + 280)square.stamp()square.goto(-x, -y + 280)square.stamp()turtle.done()

运行结果如下:

5 总结

本文实现了利用Python分别绘制黑白版圣诞树和彩色版圣诞树效果,并给出了完整代码实例。

您学废了吗?

6 参考

链接一
链接二


关注公众号《AI算法之道》,获取更多AI算法资讯。

关注公众号,后台回复圣诞树,即可获取源代码。

那些年,我们画过的圣诞树相关推荐

  1. 如何用java画一颗圣诞树

    如何用java画一颗圣诞树 哈喽 ,今天教各位一个有趣的代码,利用for循环简单地画一个圣诞树. 代码如下: ```java public class Dan {public static void ...

  2. python turtle画圣诞树动图_用 turtle 画一棵圣诞树

    蹭个洋年的热点,练一下刚学的 turtle 库. 本来想加个亮闪闪的灯光的效果,想来想去,只能想到利用time.sleep()来重复绘制圆球,没别的好方法,就暂时不写了.等以后道行更高一点,再来补充这 ...

  3. 圣诞节用Python画一颗圣诞树

    圣诞节用Python画一颗圣诞树 前言 一.初级圣诞树 二.中级圣诞树 三.高级圣诞树 四.超高级圣诞树 总结 前言 正在学Python的你是不是很想在圣诞节给女朋友一个惊喜? 哦!忘了,或许你压根儿 ...

  4. 最美圣诞树 | 用Python画棵雪夜圣诞树送给你

    今天是平安夜,明天就是圣诞节,这两天应该是苹果最畅销的日子 - 提到圣诞节,就不得不提圣诞树,本文我们用 Python 来画一棵圣诞树,先睹为快. 下面展开来看一下主要代码实现. 树 圣诞树主要代码实 ...

  5. 最美圣诞树!用Python画棵雪夜圣诞树送给你

    今天是平安夜,明天就是圣诞节,这两天应该是苹果最畅销的日子 ... 提到圣诞节,就不得不提圣诞树,本文我们用 Python 来画一棵圣诞树,先睹为快. 下面展开来看一下主要代码实现. 树 圣诞树主要代 ...

  6. 简单用Python turtle画了个圣诞树,看看写了多少行代码

    今天画了一个圣诞树,源代码比较长,是基于Python turtle绘制的. 程序运行效果图 完整程序源代码: import turtle as t # as就是取个别名,后续调用的t都是turtle ...

  7. HTML 画一颗圣诞树

    可以用 HTML 画一颗圣诞树的方法是: 使用 HTML 的 div 元素来表示圣诞树的主体. 使用 HTML 的 span 元素来表示圣诞树的枝干和叶子. 使用 CSS 的背景颜色和边框属性来给圣诞 ...

  8. 用python画圣诞树图片-节日快乐! Python画一棵圣诞树送给你

    本文实例为大家分享了Python画圣诞树的具体代码,供大家参考,具体内容如下 源代码 from turtle import * import random import time #from unit ...

  9. 教你用Python画一棵圣诞树

    如何用Python画一个圣诞树呢? 最简单的方法: height = 5stars = 1 for i in range(height):print((' ' * (height - i)) + (' ...

  10. 最美圣诞树,用Python画棵雪夜圣诞树送给你

    今天是平安夜,明天就是圣诞节,这两天应该是苹果最畅销的日子 ... 之前发了一篇圣诞树的文章,看小伙伴都挺感兴趣的,本文再用 Python 来画一棵高级一点的圣诞树,先睹为快. 下面展开来看一下主要代 ...

最新文章

  1. python3连接mysql_第七篇:Python3连接MySQL
  2. TypeScript学习笔记1:变量赋值及书写方式
  3. element.onclick = fun与element onclick=fun()的区别
  4. k8s集群DNS无法解析问题的处理过程
  5. 面试题:彻底理解ThreadLocal 索引的利弊 背1
  6. HTML中关于图像和表格,链接等的知识
  7. Facebook190亿美元收购WhatsApp
  8. 有两个python怎么停用其中一_如何在python中停止另一个已经运行的脚本?
  9. 新手篇 | K8S配置最佳实践
  10. clock gate cell
  11. uva 1045(二分图最大权匹配)
  12. 在Windows下的virtualenv中搭建Flask+MySQLDb开发环境
  13. Docker概念学习系列之详谈Docker 的核心组件与概念(5)
  14. DenseNet解析
  15. Latex 排版命令总结
  16. 小米文件管理android,小米文件管理器
  17. VScode窗口保持
  18. 积分分汇界面将判断放到D层后,D层的写法
  19. PDF文件签名与盖章
  20. 淘淘商城第86讲——实现商品详情页面静态化方案时,你没遇到过java.lang.IllegalArgumentException或者java.lang.NullPointerException这种异常

热门文章

  1. 设计人工智能产品:技术可能性、用户合意性、商业可行性
  2. ROOK-01 集群简单搭建和卸载
  3. 生产者和消费者模型介绍
  4. 详解Windows系统中如何释放C盘空间(转)
  5. SpaceX龙飞船成本
  6. 2022飞鱼科技--鱼苗夏令营实习--游戏客户端--一面(已挂)
  7. ccd视觉定位教程_ccd视觉定位系统工作原理及过程
  8. SwiftUI 手势操作
  9. 中级响应代表什么事件_15万预算,能买到合格的中级轿车吗?
  10. 如何才能让你的一天卓有成效