圣诞节到了,教大家用 Python 绘制几棵圣诞树~

大家好,我是大飞

今天是圣诞节,先在这里祝大家圣诞节快乐~~,用英语来表达就是 Merry Christmas ~~,

为了贴合这个氛围,今天分享五种用 Python 绘制圣诞树的方法,从基础到高级,效果也不断攀升分为 1 到 5 五个 Level 水平;

Level 1

先看下最最最基础版的 Level 1 ,一行代码搞定,看完之后不要打我(狗头保命)

image-20211224213341481

print('\n'.join(' '*(20-i)+'/'+' '*2*i+'\\' for i in range(20)))

效果可能差强人意,但毕竟一行代码也做不了太多东西,这里只能先给个轮廓看了,有更好想法的小伙伴可以在下方留言区滴滴

Level-2

此版本是 Level 1 的改进版,看到 Level 1 效果后可能有小伙伴感觉自己被 “欺骗” 了,啥也没有,分明就是两根线在那里搭着;因此,Level 2 丰富前者内部的空洞,加了些雪花效果;

代码不多,比 Level 1 多了1行 import random

print('\n'.join(' '*(20-i)+'/'+''.join(random.choice(' # *') for _ in range(2*i))+'\\' for i in range(20)))

image-20211224215143129

里面加完点 "雪花效果” 之后,Level 2 是不是有那么一丝丝圣诞树的感觉了,

Level 1Level 2 都是 借助 print 实现了一个打印效果,真正好看的展示效果还需要借助 Python 的一个 绘图包 turtle : 通过使用一些简单组合命令,可以轻松地绘制出精美的形状和图案

Level 3

Level 3 版是一个卡通少儿版的,呈现效果像是用蜡笔绘制而成:深色和浅色相搭配,满满少女心,树上也缀有圣诞袜、五角星等装饰品

Snipaste_2021-12-24_21-08-49

def iou(x, y, z):penup()goto(x, y)pencolor("#f799e6")pendown()seth(z)for po in range(10):fd(4)left(18)# 圣诞帽
seth(-20)
pensize(2)
penup()
goto(-30, -120)
pencolor("black")
pendown()
fillcolor("red")
fd(30)
circle(4, 180)
fd(30)
circle(4, 180)
penup()
goto(-25, -115)
seth(75)
pendown()
begin_fill()
for i in range(5):fd(6)right(20)
seth(-10)
for i in range(5):fd(8)right(15)
seth(145)
for i in range(5):fd(5)left(2)
seth(90)
for i in range(5):fd(1)left(2)
seth(-90)
for i in range(4):fd(4)right(6)
seth(161)
fd(30)
end_fill()
pensize(1)
pencolor("black")def koc(x, y, size):pensize(2)pencolor("black")penup()goto(x, y)pendown()begin_fill()fillcolor("yellow")for i in range(5):left(72)fd(size)right(144)fd(size)end_fill()

Level 4

Level 1-Level 5 这几个版本的圣诞树中,个人最喜欢 Level 4 中分支的效果:又细又绿,整体看起来简约而不失真;

Snipaste_2021-12-24_22-40-42

import turtle# 定义圣诞树的绿叶函数
def tree(d, s):if d <= 0:returnturtle.forward(s)tree(d - 1, s * .8)turtle.right(120)tree(d - 3, s * .5)turtle.right(120)tree(d - 3, s * .5)turtle.right(120)turtle.backward(s)
n = 100
""" 设置绘图速度
'fastest' : 0
'fast'  : 10
'normal' : 6
'slow'  : 3
'slowest' : 1
"""
turtle.speed('fastest') # 设置速度turtle.left(90)
turtle.forward(3 * n)
turtle.color("orange", "yellow")
turtle.left(126)# turtle.begin_fill()
for i in range(5):turtle.forward(n / 5)turtle.right(144)turtle.forward(n / 5)turtle.left(72)turtle.end_fill()
turtle.right(126)
turtle.color("dark green")
turtle.backward(n * 4.8)# 执行函数
tree(15, n)
turtle.backward(n / 5)

Level 5

Level 5 作为最后一个版本,效果当然是这几个版本中最贴近于真实圣诞树的,装饰品、平安果,圣诞节礼物要啥有啥,此外漫天雪花、黑夜背景也被绘制出来了,整体氛围是超级棒(当然代码行数相对也是较多的😂)

Snipaste_2021-12-24_20-50-19

n = 100.0t.pensize(10)  # 修改画笔大小
speed("fastest")  # 定义速度
screensize(bg='black')  # 定义背景颜色,可以自己换颜色
left(90)
forward(3 * n)
color("orange", "yellow")  # 定义最上端星星的颜色,外圈是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)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')  # 其余的随机数情况下画空的树枝color("dark green")  # 定义树枝的颜色
backward(n * 4.8)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)tree(15, n)
backward(n / 2)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)t.color("dark red", "red")  # 定义字体颜色
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))  # 定义文字、位置、字体、大小def drawsnow():  # 定义画雪花的方法t.ht()  # 隐藏笔头,ht=hideturtlet.pensize(2)  # 定义笔头大小for i in range(200):  # 画多少雪花t.pencolor("white")  # 定义画笔颜色为白色,其实就是雪花为白色t.pu()  # 提笔,pu=penupt.setx(r.randint(-350, 350))  # 定义x坐标,随机从-350到350之间选择t.sety(r.randint(-100, 350))  # 定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始t.pd()  # 落笔,pd=pendowndens = 6  # 雪花瓣数设为6snowsize = r.randint(1, 10)  # 定义雪花大小for j in range(dens):  # 就是6,那就是画5次,也就是一个雪花五角星# t.forward(int(snowsize))  #int()取整数t.fd(int(snowsize))t.backward(int(snowsize))# t.bd(int(snowsize))  #注意没有bd=backward,但有fd=forward,小bugt.right(int(360 / dens))  # 转动角度

小结

本文所有案例代码的获取方式:关注微信公众号 小张Python,后台回复关键词:211225 即可

以上就是本篇文章的所有内容了,如果对你有所帮助的话,不妨点个赞就是对我最大的鼓励,我们下期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59430.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【圣诞来了】3分钟教你用java画一颗彩色圣诞树,送给别人作为圣诞礼物吧

⭐️写在前面 这里是温文艾尔の学习之路&#x1f44d;如果对你有帮助&#xff0c;给博主一个免费的点赞以示鼓励把QAQ&#x1f44b;博客主页&#x1f389; 温文艾尔の学习小屋⭐️更多文章&#x1f468;‍&#x1f393;请关注温文艾尔主页&#x1f345;文章发布日期&#xff1a…

如何用python画圣诞树(附圣诞树代码)

python圣诞树代码 1、简单的绘制圣诞树 新建tree1.py或者直接输入下面代码运行 #声明树的高度 height 5 #树的雪花数&#xff0c;初始为1 stars 1 #以数的高度作为循环次数 for i in range(height): print((’ ’ * (height - i)) (’*’ * stars)) stars 2 #输…

【AI金融】Can ChatGPT Forecast Stock Price Movements? Return Predictability and Large Language Models

titleChatGPT能够预测股票走势吗&#xff1f;回到可预测性与大预言模型出版时间2023年4月6日doiarXiv:2304.07619v3 [q-fin.ST]期刊arXiv类别Null关键词Statistical Finance (q-fin.ST); Computation and Language (cs.CL)文章链接https://arxiv.org/abs/2304.07619 ChatGPT可以…

AIGC—— 内容生产力革命的起点

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.AIGC 1.什么是AIGC? 2.AIGC有哪些优势与挑战 &#xff08;1&#xff0…

QQ、微信、QQ浏览器UserAgent

如果你开发过微信公众好或者手机站的话应该遇到过一些页面访问的时候会提示使用手机或者微信访问。 但是手机上面如何查看页面源码&#xff1f; 如何调试&#xff1f; 方法当然是很多的&#xff0c;下面提供一种方法&#xff1a; 使用Chrome配合UserAgent可查看微信页面。U…

【浏览器】浏览器安全

浏览器安全分为页面安全、系统安全、网络安全 页面安全 为了页面安全浏览器引入了最核心的安全策略&#xff1a;同源策略&#xff08;Same-origin policy&#xff09; 同源策略 同源指&#xff1a;URL的协议、域名和端口都相同。两个不同的源之间若想要相互访问资源或者操作…

5-HT2A靶向药物|适应症|市场销售-上市药品前景分析

据世界卫生组织称&#xff0c;抑郁症是一种多因素疾病&#xff0c;影响全球约3.5 亿人。中枢神经系统最广泛的单胺 - 血清素 (5-HT) 被认为在这种情况的病理机制中起着至关重要的作用&#xff0c;并且神经递质的重要性被“血清素假说”提升&#xff0c;将抑郁症的存在联系起来 …

国内十大上市移动医疗企业盘点

作为医疗改革的重要突破口&#xff0c;我国智慧医疗的发展已经渐行渐近&#xff0c;上海、杭州等地的智慧医疗走在全国前列。随着多项医卫信息化政策的密集出台以及医改的不断深入&#xff0c;人们惊喜地发现&#xff0c;无论是传统的医疗管理理念亦或是传统的就医模式正在或将…

OpenAI正式上线安卓版ChatGPT,支持普通话甚至粤语等方言

OpenAI 今日宣布&#xff0c;安卓版 ChatGPT 已正式上线&#xff0c;目前美国、印度、孟加拉国和巴西四国的安卓用户已经可在谷歌 Play 商店进行下载&#xff0c;并计划在下周拓展到更多地区。 下载直达&#xff1a;https://play.google.com/store/apps/details?idcom.openai…

ChatGPT细说从头(十四):思维链

原文&#xff1a;ChatGPT细说从头(十四)&#xff1a;思维链 - 知乎 引言 ChatGPT刚推出的时候&#xff0c;大家会发现它在数学运算方面表现不佳&#xff0c;因为复杂的数学问题需要多步推理过程&#xff0c;但没过多久就发现它有了重要提升&#xff0c;而且回答方式也有了显著…

人工智能五大趋势预测!这些人将成为职场“香饽饽”!

近日&#xff0c;在如火如荼的「ChatGPT大战」中&#xff0c;科大讯飞发布星火认知大模型&#xff0c;学而思另辟蹊径自研数学大模型「MathGPT」&#xff0c;已经取得了阶段性成果。 作为生成式人工智能的里程碑&#xff0c;ChatGPT在全球引起了新浪潮。未来&#xff0c;人工智…

OpenAI最新官方ChatGPT聊天插件接口《插件安全审查流程》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Plugin review process 插件审查流程 前言Plugin review process 插件审查流程What we are looking for in a plugin 我们正在寻找一个插件Plugin states 插件状态Types of users 用户类型Submit a plugin for review 提交一个插件进行审核其它资料下载 前言 在 ChatGPT 中&am…

chatgpt赋能python:Python插件下载指南

Python插件下载指南 Python作为一种高级编程语言&#xff0c;应用广泛&#xff0c;拥有各种各样的插件库。这篇文章将帮助你了解Python插件下载的基本步骤和注意事项。 找到需要的插件 首先&#xff0c;你需要知道自己想要的插件是什么。你可以在Python官方网站、GitHub或者…

Java实现AI机器人聊天

文章目录 前言一、账号注册申请密钥二、参数详情三、Java集成1.调用接口2.响应数据 四、效果总结 前言 OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或实现代码等场景。提供一系列具有不同学习训练的模型&#xff0c;适用于处理不同的任务&#xff0c;并且自己能够自…

新浪博客提示“系统繁忙,请稍候再试”的解决方法

前段时间想写博客&#xff0c;提交几次都不成功&#xff0c;提示“系统繁忙&#xff0c;请稍候再试。”如下图&#xff1a; 一开始还以为真是系统繁忙的原因&#xff0c;过了几天换了不同时间段提交&#xff0c;故障依旧。网上试过找一些不同的方法 尝试&#xff0c;也没解决。…

VM虚拟机异常关机后再次登录显示系统繁忙怎么办?

上一次由于电脑卡了&#xff0c;在关闭虚拟机的时候卡住了&#xff0c;等再次登录的时候就显示系统繁忙无法登陆。 这个时候不要慌张&#xff0c;找到你当时安装虚拟机的文件夹Centos&#xff0c;打开文件夹&#xff0c;里面有一个.lck的文件夹&#xff0c;删除这个文件夹就可…

技术动态 | 如何将ChatGPT和企业专有知识结合起来?

转载公众号 | 知识管理就在夏博 不需要再重复 ChatGPT 的流行程度以及有多少精彩的用例&#xff0c;因为到处都有大量关于此的文章&#xff0c;本文主要分享如何解决当前 ChatGPT 版本的一些关键限制并将企业专有知识嵌入 ChatGPT 的想法。 在各种限制中&#xff0c;有三个关键…

微软震撼开源DeepSpeed Chat,一键实现ChatGPT的端到端RLHF训练

编&#xff5c;Aeneas 好困源&#xff5c;新智元 微软开源的DeepSpeed Chat&#xff0c;让开发者实现了人手一个ChatGPT的梦想&#xff01; 人手一个ChatGPT的梦想&#xff0c;就要实现了&#xff1f; 刚刚&#xff0c;微软开源了一个可以在模型训练中加入完整RLHF流程的系统框…

“开源ChatGPT”:PaLM-rlhf-pytorch

就说程序员的手速有多快吧,首个开源ChatGPT项目已经出现了! 基于谷歌语言大模型PaLM架构,以及使用从人类反馈中强化学习的方法(RLHF),华人小哥Phillip Wang复刻了一个ChatGPT出来。 项目GitHub星已经超过1.7k了,而且还在一路飙升ing。 不过一反常态的是,网友们看到“开…

英语听力,这练习很简单

首先&#xff0c;跟大家推荐一个软件&#xff0c;亲测真的巨好用&#xff0c;听力&#xff0c;口语&#xff0c;词汇一把抓。 就是它&#xff0c;每日英语听力&#xff0c;你提高听力最需要的单句精听它有噢&#xff0c;建议每次听一遍&#xff0c;把句子写下来&#xff0c;重…