Python实现张万森下雪了的效果

写在前面

即将步入婚宴殿堂的女主林北星,遭遇了男友展宇的毁约,生活和工作也变得一团糟。与此同时,她被时光老人带回了十八岁的高三时光,重新开启了自己的人生。林北星摆脱了展宇的束缚,认真准备高考,想要为了自己活一次。然而,她却遇到了改变自己命运的男主张万森,并开始试图拯救他……

一闪一闪亮星星

《一闪一闪亮星星》是由陈小明、章攀执导,张佳宁、屈楚萧领衔主演,吴希泽、傅菁、骆明劼、蒋昀霖、徐紫茵主演的奇幻悬疑爱情剧。该剧讲述了林北星意外删除旧手机中的短信回到过去,重新认识了昔日陌路校友张万森,从而展开一段奇妙的时空拯救之旅的故事。

有人说,张万森下雪了的意思是我想你了;也有人说,张万森下雪了就是表达一个男孩对于暗恋女孩的感受。小编觉得“张万森下雪了”是一个含蓄的告白,小伙伴们觉得呢~

本文小编将用python画出“张万森,下雪了”,Let's start!

Turtle入门

turtle是Python编程语言中的一个模块,用于绘制图形和图形动画。它最初在Logo编程语言中使用,用于教育孩子们进行绘图操作。现在,它已经成为Python绘图和图形动画的一个重要工具。下面,我们来介绍一下turtle模块的基本用法和入门指南。

首先,需要导入turtle模块,可以使用以下代码:

import turtle

接下来,我们创建一个画板和一个画笔,可以使用以下代码:

window = turtle.Screen()  # 创建一个画板
pen = turtle.Turtle()  # 创建一个画笔

在turtle中,画笔默认是箭头形状。现在,我们可以使用画笔来绘制一些基本的图形,比如正方形、三角形和圆形。以下是一些示例代码:

# 绘制正方形
for _ in range(4):pen.forward(100)  # 向前移动100个单位pen.right(90)  # 右转90度# 绘制三角形
for _ in range(3):pen.forward(100)pen.right(120)# 绘制圆形
pen.circle(100)

除了基本的图形绘制,我们还可以使用turtle模块来绘制更复杂的图形和图形动画。例如,我们可以使用循环和条件语句来绘制一些有趣的图案,比如螺旋线、星星和花朵。以下是一些示例代码:

# 绘制螺旋线
for i in range(100):pen.forward(i)pen.right(90)# 绘制星星
for _ in range(5):pen.forward(100)pen.right(144)# 绘制花朵
for _ in range(36):pen.forward(50)pen.right(50)pen.forward(50)pen.right(130)pen.forward(50)pen.right(50)pen.forward(50)pen.right(130)pen.right(10)

在绘制图形时,可以使用不同的颜色和线条粗细来美化图形。以下是一些示例代码:

pen.color("red")  # 设置画笔颜色为红色
pen.pensize(3)  # 设置画笔线条粗细为3个单位

最后,当我们完成图形绘制后,需要关闭画板,可以使用以下代码:

turtle.done()  # 关闭画板

以上就是turtle模块的基本用法和入门指南。希望这能帮助你快速入门turtle绘图和图形动画。你可以通过尝试不同的代码来绘制更多的图形和动画,提升你的编程能力。

张万森,下雪了

运行结果

程序设计


import turtle as tu
import random as ra
import time
tu.setup(1.0, 1.0)
tu.bgcolor('black')  #设置画布颜色
tu.title("雪花")
t = tu.Pen()
t.ht()               #隐藏画笔
colors = ['white']   #雪花的颜色列表
class Snow():    #雪花类def __init__(self):self.r = ra.uniform(2,4)       #雪花的半径self.x = ra.randint(-1000,1000)   #雪花的横坐标self.y = ra.randint(500,1000)     #雪花的纵坐标self.speed = ra.randint(5,20)     #雪花移动速度self.color = ra.choice(colors)    #雪花的颜色self.outline = 2                  #雪花的大小……完整程序见文末公众号喔

程序分析

这段代码使用turtle模块绘制了一个下雪的动画,并在画布上添加了一段文字。让我们逐行来分析一下代码的具体实现。

首先,导入了turtle和random模块,并设置了画板的背景颜色和标题。然后创建了一个画笔对象t,并隐藏了画笔。

接下来定义了一个Snow类,用来创建雪花对象。在Snow类的构造函数中,使用random模块生成雪花的属性,如半径、横坐标、纵坐标、移动速度和颜色。其中,颜色列表为['white']。

在Snow类中定义了两种绘制雪花的方法。第一种方法采用turtle的circle函数绘制一个实心的雪花。第二种方法则是通过turtle的forward和backward函数以及角度转向来绘制雪花的花瓣形状。

接着定义了Snow类的move方法,用来实现雪花的移动效果。如果雪花还在画布内部,则将雪花的纵坐标递减,实现向上移动的效果。否则,重新生成一个雪花对象,使其重新从上方开始下落。

接下来创建了一个存储雪花对象的列表Snows,并使用一个for循环来生成199个雪花对象,并存储到列表中。

在主循环中,使用tu.tracer(0)来关闭图形的自动刷新,以提高程序的运行速度。然后清除画布上的内容,并绘制一个文字“我 好 想 你”。接着使用一个for循环遍历所有的雪花对象,调用它们的move()方法和snow()方法来实现雪花的移动和绘制。最后使用tu.update()方法来刷新画布,完成一次绘制。

整个程序将在一个无限循环中执行,实现了一个持续下雪的动画效果。

在代码中还有一部分被注释掉了,这部分代码是在画布上显示文字并进行清除的动画效果,你可以取消注释来观察效果。

写在后面

我是一只有趣的兔子,感谢你的喜欢!

【注】博主的所有原创文章仅供学习使用,禁止转载以及商业盈利,如被发现后果自负!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

九九乘法表c 语言 用于打印九九乘法表

以下是一个简单的C语言程序&#xff0c;用于打印九九乘法表&#xff1a; #include <stdio.h>int main() {int i, j;for (i 1; i < 9; i) {for (j 1; j < i; j) {printf("%d*%d%-2d ", j, i, i*j);}printf("\n");}return 0; }解释&#xff1…

html-css-js移动端导航栏底部固定+i18n国际化全局

需求&#xff1a;要做一个移动端的仿照小程序的导航栏页面操作&#xff0c;但是这边加上了i18n国家化&#xff0c;由于页面切换的时候会导致国际化失效&#xff0c;所以写了这篇文章 1.效果 切换页面的时候中英文也会跟着改变&#xff0c;不会导致切换后回到默认的语言 2.实现…

接口自动化框架设计之参数传递

在我们设计自动化测试框架的时候&#xff0c;我们会经常将测试数据保存在外部的文件&#xff08;如Excel、YAML&#xff09;中&#xff0c;实现测试脚本与测试数据解耦&#xff0c;方便后期维护。 当涉及到业务场景接口用例时&#xff0c;由于接口与接口存在关联关系&#xff…

Mysql For Navicate (老韩)

Navicate创建数据库 先创建一个数据库;然后在数据库中创建一张表;在表格当中填入相应的属性字段;打开表, 然后填入相应的实例字段; – 使用数据库图形化App和使用指令来进行操作各有各的好处和利弊; 数据库的三层结构(破除MySQL神秘) 所谓安装Mysql数据库, 就是在主机安装一…

线程基础知识(三)

前言 之前两篇文章介绍了线程的基本概念和锁的基本知识&#xff0c;本文主要是学习同步机制&#xff0c;包括使用synchronized关键字、ReentrantLock等&#xff0c;了解锁的种类&#xff0c;死锁、竞争条件等并发编程中常见的问题。 关键字synchronized synchronied关键字可…

java设计模式学习之【备忘录模式】

文章目录 引言备忘录模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用备忘录示例代码地址 引言 想象一下&#xff0c;你正在编辑一篇重要的文档&#xff0c;突然你意识到最近的一些更改实际上破坏了文档的结构。幸运的是&#xff0c;你的文本编辑器允许你撤…

【react项目开发遇到的问题记录】:The above error occurred in the <Route.Provider> component:

在进行路由切换会出现一下报错&#xff1a;The above error occurred in the <Route.Provider> component: 解决办法 在使用组件懒加载的时候&#xff0c;在外面套一个react的组件:Suspense Suspense 目前在 react 中一般配合 lazy 使用&#xff0c;当有一些组件需要动…

NLP论文阅读记录 - 02 | 2022 自动文本摘要方法:综合回顾

文章目录 前言0、论文摘要一、Introduction1.1文本摘要的要求1.2主要研究贡献 二.ATS的分类2.1基于没有。输入文档的数量2.2 基于总结方法2.3 基于输出摘要性质&#xff1a;2.4 基于摘要语言2.4.1 基于摘要算法2.5 基于摘要内容2.6 基于摘要类型2.7 基于概括域2.8 基于加工水平…

PyTorch 进阶指南,10个必须知道的原则

PyTorch 是一种流行的深度学习框架&#xff0c;它提供了强大的工具和灵活的接口&#xff0c;使得开发者能够搭建和训练各种神经网络模型。这份指南旨在为开发者提供一些有用的原则&#xff0c;以帮助他们在PyTorch中编写高效、可维护和可扩展的代码。 如果你对 Pytorch 还处于…

软件测试面试中90%会遇到的问题,面试前刷提高百分之60的通过率

面试的时候&#xff0c;遇到这样的提问&#xff0c;很多人的都会感觉脑子一下一片空白&#xff0c;或者星星点点&#xff0c;不知道从何说起。 一方面不知道面试官问这个问题的意图是什么&#xff1f;也不知道他想得到的答案是什么&#xff1f; 更加不知道该从哪些方面来回答…

在香橙派5 Plus上搭建Gitlab

作为一个码农&#xff0c;一定知道Github这个最大的成人交友网站。但是Github在国内不稳定&#xff0c;经常拉不下来代码&#xff0c;也就无法推送代码。为了更方便的使用&#xff0c;顺便更好地了解Git工具&#xff0c;决定在香橙派5 Plus上搭建一个属于自己的代码仓库。 1、…

Grafana 配置告警

配置告警 配置告警 1. Grafana 配置文件配置 #################################### SMTP / Emailing ########################## [smtp] enabled true host smtp.qq.com:587 user 9**qq.com # If the password contains # or ; you have to wrap it with triple quotes…

lv13 内核模块动态添加新功能 6

1 动态加载法 即新功能源码与内核其它源码不一起编译&#xff0c;而是独立编译成内核的插件(被称为内核模块&#xff09;文件.ko 1.1 新功能源码与Linux内核源码在同一目录结构下时 给新功能代码配置Kconfig&#xff08;模块代码与上一级相同&#xff09; 给新功能代码改写…

软件性能测试如何分类?广东省CMA、CNAS软件检测机构有哪些?

性能测试是衡量软件产品质量的有效手段&#xff0c;是保证软件产品可靠性和稳定性的重要环节之一&#xff0c;主要是通过对软件运行的各种参数和行为进行检测以评估软件的性能&#xff0c;在软件质量保证中有着十分重要的作用。 一、软件性能测试如何分类?   1. 负载测试  …

基于Springboot+vue医院管理系统(前后端分离)

最近有一些读者问我有没有完整的基于SpringbootVue的项目源码&#xff0c;今天给大家整理了一下&#xff0c;无偿分享给大家。 功能&#xff1a; 医生信息管理 换着信息管理 挂号信息管理 药物信息管理 检查项目管理 病床信息管理 排班信息管理 数据统计分析 开发工具…

Python第五章(列表)

列表的书写格式&#xff1a;[数据1&#xff0c;数据2&#xff0c;数据3.....] 作用&#xff1a;可以存储多个数据&#xff0c;且可以为不同的数据类型 一。列表的常规操作&#xff1a; 1。查找&#xff1a; index()&#xff1a;返回类型的下标位置 语法&#xff1a;列表序…

学之思开源考试系统是一款 java + vue 的前后端分离的考试系统

学生系统功能 模块介绍登录用户名、密码注册年级、用户名、密码任务中心管理员发布的年级任务&#xff0c;每个学生只能做一次考试题干支持文本、图片、数学公式、表格等&#xff0c;学生答题支持&#xff1a;文本固定试卷可重复练习、自行批改的试卷时段试卷在时间限制内&…

国产化软硬件升级之路:πDataCS 赋能工业软件创新与实践

在国产化浪潮的推动下&#xff0c;基础设施软硬件替换和升级的需求日益增长。全栈国产化软硬件升级替换已成为许多领域中的必选项&#xff0c;也引起了数据库和存储领域的广泛关注。近年来&#xff0c;虽然涌现了许多成功的替换案例&#xff0c;但仍然面临着一些问题。 数据库…

Springboot使用log4j2日志框架

文章目录 1.pom.xml引入依赖2.配置文件引入log4j2的配置文件3.导入log4j2配置文件4.通过Slf4j注解来使用log.info()等最后 1.pom.xml引入依赖 提示&#xff1a;lombok用于Slf4j注解 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

有了向量数据库,我们还需 SQL 数据库吗?

“除了向量数据库外&#xff0c;我是否还需要一个普通的 SQL 数据库&#xff1f;” 这是我们经常被问到的一个问题。如果除了向量数据以外&#xff0c;用户还有其他标量数据信息&#xff0c;那么其业务可能需要在进行语义相似性搜索前先根据某种条件过滤数据&#xff0c;例如&a…