动态的中秋爱心演示送女友用python生成爱心软件文末附c++语言写法

用python生成爱心软件

用python生成动态爱心软件

目录

用python生成爱心软件

完整代码 

代码解释

逐句解释 

效果展示: 

 如何打包

c++写法


完整代码 

import turtledef draw_heart():love = turtle.Turtle()love.getscreen().bgcolor("black")love.color("red")love.speed(3)love.begin_fill()love.fillcolor("red")love.left(140)love.forward(224)for _ in range(200):love.right(1)love.forward(2)love.left(120)for _ in range(200):love.right(1)love.forward(2)love.forward(224)love.end_fill()turtle.done()def send_mid_autumn_love_to_girlfriend():print("正在生成中秋爱心动画,请稍等片刻...")draw_heart()print("亲爱的,中秋节到了,在这个美好的时刻,我想对你说:")print("你是我生命中的月光,照亮了我的每一天;")print("你像皓月般明亮温暖,给我带来无尽的欢乐和幸福;")print("愿我们的爱情如同中秋的圆月,永远圆满和美好;")print("祝你中秋快乐,幸福永伴!爱你宝贝~")send_mid_autumn_love_to_girlfriend()

代码解释

这段代码使用了Python的turtle模块来绘制一个动态的中秋爱心。

首先,我们创建了一个turtle对象,命名为love。然后,通过设置背景颜色和画笔颜色,以及调整速度等参数来配置画布和画笔的属性。接着,我们开始填充心形的颜色。

画心形的过程采用了一种特殊的方法,即通过多次旋转和前进的动作来逐步绘制心形的轮廓。具体而言,先向左旋转140度,然后向前移动224个像素,接着通过循环来绘制上半部分的曲线,再向左旋转120度,最后通过循环来绘制下半部分的曲线。

绘制完成后,我们使用turtle.done()来保持窗口的显示,直到手动关闭为止。

最后,我们编写了一个函数send_mid_autumn_love_to_girlfriend()来打印相应的祝福文本,并调用了draw_heart()函数来生成中秋爱心动画。

注意,运行该代码时需要安装turtle模块,可以通过执行"pip install turtle"来进行安装。

逐句解释 

  1. import turtle:导入turtle模块,用于绘制图形。

  2. def draw_heart()::定义一个名为draw_heart的函数,用于绘制心形图案。

  3. love = turtle.Turtle():创建了一个名为love的turtle对象,用于进行绘图操作。

  4. love.getscreen().bgcolor("black"):设置画布背景色为黑色。

  5. love.color("red"):设置画笔颜色为红色。

  6. love.speed(3):设置画笔移动速度为3(中等速度)。

  7. love.begin_fill():开始填充。

  8. love.fillcolor("red"):设置填充颜色为红色。

  9. love.left(140):向左旋转140度。

  10. love.forward(224):向前移动224个像素。

  11. for _ in range(200)::循环200次,用于绘制上半部分的曲线。

  12. love.right(1):向右旋转1度。

  13. love.forward(2):向前移动2个像素。

  14. love.left(120):向左旋转120度。

  15. for _ in range(200)::循环200次,用于绘制下半部分的曲线。

  16. love.right(1):向右旋转1度。

  17. love.forward(2):向前移动2个像素。

  18. love.forward(224):向前移动224个像素。

  19. love.end_fill():结束填充。

  20. turtle.done():保持窗口显示。

  21. def send_mid_autumn_love_to_girlfriend()::定义一个名为send_mid_autumn_love_to_girlfriend的函数,用于发送中秋节爱心祝福给女友。

  22. print("正在生成中秋爱心动画,请稍等片刻..."):打印信息提示正在生成中秋节爱心动画。

  23. draw_heart():调用draw_heart()函数,绘制中秋爱心动画。

  24. print("亲爱的,中秋节到了,在这个美好的时刻,我想对你说:"):打印中秋节祝福语。

  25. print("你是我生命中的月光,照亮了我的每一天;"):打印表达爱意的句子。

  26. print("你像皓月般明亮温暖,给我带来无尽的欢乐和幸福;"):打印表达爱意的句子。

  27. print("愿我们的爱情如同中秋的圆月,永远圆满和美好;"):打印表达爱意的句子。

  28. print("祝你中秋快乐,幸福永伴!爱你宝贝~"):打印中秋节祝福语。

效果展示: 

效果既然展示完了那我们把他直接打包成软件发给女朋友吧!

 如何打包

要将Python代码打包成可执行的软件,您可以使用PyInstaller、py2exe、cx_Freeze等工具。下面以PyInstaller为例,提供一个简单的步骤指南:

  1. 安装PyInstaller:在命令行中执行 pip install pyinstaller 来安装PyInstaller。

  2. 进入您的Python代码所在的目录。

  3. 在命令行中执行 pyinstaller --onefile your_script.py,其中 your_script.py 是您要打包的Python脚本文件名。

  4. 执行上述命令后,PyInstaller会开始分析并打包您的代码。完成后,您将在当前目录中的dist文件夹内找到一个与脚本同名的可执行文件。

请注意,有些Python模块或依赖可能无法被自动检测和包含在可执行文件中,您需要手动添加这些依赖或进行其他额外的设置。每个打包工具都有自己的特定用法和配置选项,您可以参考相应工具的文档了解更多详细信息。

c++写法

#include <graphics.h>void drawHeart() {initwindow(800, 600); // 创建一个窗口setbkcolor(BLACK);setcolor(RED);setfillstyle(SOLID_FILL, RED);int x = 400;int y = 300;int radius = 150;// 绘制半个心形arc(x-radius/2, y, 0, 180, radius/2);arc(x+radius/2, y, 0, 180, radius/2);line(x-radius/2, y+radius/2, x, y+radius);line(x+radius/2, y+radius/2, x, y+radius);// 填充心形floodfill(x, y, RED);delay(5000); // 延迟5秒钟closegraph(); // 关闭图形窗口
}void sendMidAutumnLoveToGirlfriend() {cout << "正在生成中秋爱心动画,请稍等片刻..." << endl;drawHeart();cout << "亲爱的,中秋节到了,在这个美好的时刻,我想对你说:" << endl;cout << "你是我生命中的月光,照亮了我的每一天;" << endl;cout << "你像皓月般明亮温暖,给我带来无尽的欢乐和幸福;" << endl;cout << "愿我们的爱情如同中秋的圆月,永远圆满和美好;" << endl;cout << "祝你中秋快乐,幸福永伴!爱你宝贝~" << endl;
}int main() {sendMidAutumnLoveToGirlfriend();return 0;
}

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

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

相关文章

SVN 和 GIT 命令对比

参考 https://blog.csdn.net/justry_deng/article/details/82259470 # TortoiseSVN打分支、合并分支、切换分支 https://www.huliujia.com/blog/802a64152bbbe877c95c84ef2fdf3857a056b536/ # 版本控制&#xff1a;Git与Svn的命令对应关系 TortoiseSVN打分支、合并分支、切换…

【深度学习-注意力机制attention 在seq2seq中应用】

注意力机制 为什么需要注意力机制attention机制的架构总体设计一、attention本身实现评分函数 attention在网络模型的应用-Bahdanau 注意力加性注意力代码实现 为什么需要注意力机制 这是一个普通的seq2seq结构&#xff0c;用以实现机器对话&#xff0c;Encoder需要把一个输入的…

Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

本人在网上查找了很多做自动化的教程和实例&#xff0c;偶然的一个机会接触到了selenium&#xff0c;觉得非常好用。后来就在网上查阅各种selenium的教程&#xff0c;但是网上的东西真的是太多了&#xff0c;以至于很多东西参考完后无法系统的学习和应用。 以下整理的只是书中…

5.11.Webrtc接口的设计原理

在上节课中呢&#xff0c;我向你介绍了web rtc的接口宏&#xff0c;那有很多同学会产生疑问啊&#xff0c;那觉得web rtc为什么要把接口设计的这么复杂&#xff1f;还非要通过宏来实现一个代理类&#xff0c;再通过代理类来调用到web rtc内部。 那为什么要这么设计呢&#xf…

java微服务项目整合skywalking链路追踪框架

skywalking官网网址&#xff1a;Apache SkyWalking 目录 1、安装skywalking 2、微服务接入skywalking 3、skywalking数据持久化 1、安装skywalking 下载skywalking&#xff0c;本篇文章使用的skywalking版本是8.5.0 Index of /dist/skywalkinghttps://archive.apache.org/…

Net跨平台UI框架Avalonia入门-样式详解

设计器的使用 设计器预览 在window和usercontrol中&#xff0c;在代码中修改了控件&#xff0c;代码正确情况下&#xff0c;设计器中就可以实时看到变化&#xff0c;但是在样式&#xff08;Styles&#xff09;文件中&#xff0c;无法直接看到&#xff0c;需要使用设计器预览D…

Python新手入门

文章目录 概要python代码运行结果小结 概要 以下内容为python各种输出语句的语法&#xff01; python代码 # 标准化输出 print("这是标准化输出&#xff01;")# 格式化输出 print("这是第1种%s"%"格式化输出&#xff01;") print("这是第…

python使用execjs利用jsdom来执行含有document的js代码方案(上)

先说一下环境&#xff1a;win7 64位&#xff0c;python3.8.10。 python使用execjs执行含有document的js代码时&#xff0c;会出现报错&#xff1a; execjs._exceptions.ProgramError: TypeError: document 未定义 原因是纯js代码中是不包含浏览器里对象的(如document、windo…

Leetcode165. 比较版本号

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 代码如下&#xff1a; class Solution {public int compareVersion(String version1, String version2) {int i 0, j 0;while(i < version1.length() || j < version2.length()){long num1 0…

endnotes插入文献突然变得格式不对,而且也不是按照正常的顺序来插入解决办法

今天插入文献突然变成了endnotes里面的文献序号&#xff0c;而且也不导入了&#xff0c;多了作者和序号信息 解决办法&#xff1a; 更新一下&#xff0c;然后在进行的导入就ok了&#xff0c;能够按照以前的格式插入了&#xff0c;序号也能自动排开&#xff0c;而且也能导入文献…

【VS Code】根据时间和文件名查看增删改的历史记录

我的 VS Code 已设置为自动保存。 左下角这个 TIMELINE 里面记录着我们使用 VS Code 操作各文件的历史记录。 打开 Local History 可以根据时间和文件名查看增删改的历史记录&#xff0c;比如&#xff1a; 然后我们根据时间和文件名&#xff0c;打开一个文件&#xff1a; 即可…

PackML 学习笔记(2) OPCUA /PackML

2020年11月11日&#xff0c;OPC 基金会发布了PackML 的配套规范&#xff08;OPC 30050: PackML - Packaging Control&#xff09;。意味着可以使用OPCUA 信息模型来构建PackML 模型了。 如果写一篇技术简介往往是简单的&#xff0c;要去实现这门技术却很难。首先&#xff0c;OP…

AIGC(生成式AI)试用 5 -- 从模糊到精确,再一步

参考 AIGC&#xff08;生成式AI&#xff09;试用 4 -- 从模糊到精确_Rolei_zl的博客-CSDN博客 提问信息不足时&#xff0c;生成式AI有的会引导提问者给出更多信息&#xff0c;有的会按自己的理解给出一个在某些方面正确的答案 随着提供的信息越来越多&#xff0c;生成式AI给…

嵌入式Linux基础学习笔记目录

1. 嵌入式Linux应用开发基础知识 1.1 交叉编译 1.2 GCC编译器 1.3 makefire 1.4 文件I/O 1.5 Framebuffer应用编程 1.6 文字显示及图象显示 1.7 输入系统应用编程 1.8 网络编程 1.9 多线程编程 1.10 串口编程 1.11 I2C应用编程 2. 源码分析 2.1 MQTT源码 2.2 蓝牙源码 2.3 MJP…

算法通过村第七关-树(递归/二叉树遍历)黄金笔记|迭代遍历

文章目录 前言1. 迭代法实现前序遍历2. 迭代法实现中序遍历3. 迭代法实现后序遍历总结 前言 提示&#xff1a;在一个信息爆炸却多半无用的世界&#xff0c;清晰的见解就成了一种力量。 --尤瓦尔赫拉利《今日简史》 你是不是觉得上一关特别简单&#xff0c;代码少&#xff0c;背…

机器学习第六课--朴素贝叶斯

朴素贝叶斯广泛地应用在文本分类任务中&#xff0c;其中最为经典的场景为垃圾文本分类(如垃圾邮件分类:给定一个邮件&#xff0c;把它自动分类为垃圾或者正常邮件)。这个任务本身是属于文本分析任务&#xff0c;因为对应的数据均为文本类型&#xff0c;所以对于此类任务我们首先…

【Git】Git 变基(rebase)以及rebase和merge之间的区别

Git 变基 1.变基 — rebase 在 Git 中整合来自不同分支的修改主要有两种方法&#xff1a;merge 以及 rebase。 在前面的文章中已经介绍了merge&#xff0c;这里我们来学习另一个指令rebase。 变基的基本操作 回顾之前在 分支的合并 中的一个例子&#xff0c;在该例子中&am…

OpenCascade VTK STEP/IGES文件读取显示

OpenCascade & VTK STEP/IGES文件读取显示&#xff0c;OpenCascade读取转成STL&#xff0c;VTK显示STL。 Download - Open CASCADE Technology https://dev.opencascade.org/release 下载exe并安装&#xff0c;可以把source下载下来学习&#xff0c;官网速度慢&#xff0…

电商API的应用价值:淘宝1688京东API接口系列

API接口是一种软件应用程序&#xff0c;它充当两个不同软件应用程序之间的中介。它帮助不同的应用程序相互通信&#xff0c;共享数据&#xff0c;从而使用户能够完成不同的任务。API接口的用途非常广泛&#xff0c;下面是一些常见的用途&#xff1a; 数据共享&#xff1a;API接…

logstash通过kafka通道采集日志信息

1.修改文件/opt/app/elk/logstash-7.5.1/config.d/config1.conf&#xff0c;在input下添加kafka采集配置 #192.168.128.130:9103:kafka地址 #topics:主题 kafka {bootstrap_servers > ["192.168.128.130:9103"]group_id > "logstash"topics > [&…