
前言:马上不就到中秋节了嘛,我看到群里很多小伙伴们在纠结如何去送出属于自己的专属浪漫,也有小伙伴私信我,说想让我出一期中秋节的表白代码或者祝福程序!好的安排~
今天就和大家分享一下我珍藏多年的中秋表白祝福神器,希望大家都可以给最爱的人送上最美的祝福💓💓💓~

本文目录:
📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅作者简介:Python领域优质创作者🏆 CSDN年度博客之星🏆 阿里云专家博主🏆 华为云享专家🏆 51CTO专家博主🏆
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉一万次悲伤,依然会有Dream,我一直在最温暖的地方等你~🌈🌈🌈
🌟🌟🌟✨✨✨ 交流合作|粉丝福利|学习资料|抱团学习|欢迎+v:18300396393
农历八月十五是我国传统的中秋佳节,是各族人民一年一度的重要节日。
中秋之夜,月亮最亮、最圆,月色也最美好。人们望着玉盘般的明月,自然会联想到家人的团聚,独在异乡的游子也期望借助明镜般的皓月寄托自己对故乡亲人的思念之情。因而,人们往往又把中秋节叫做“团圆节”。

在这个重要的日子,我们当然要把最好的祝福送给我们最好的朋友,家人和爱人们!那有什么属于我们程序员的特别礼物呐,当然有!接下来我就把2我珍藏多年的祝福神器分享给大家,希望大家都可以给最爱的人送上最美的祝福~
但愿人长久,千里共婵娟。
马上不就到中秋节了嘛,我看到朋友圈里很多小伙伴们在纠结如何去送出属于自己的专属浪漫,也有小伙伴私信我,说想让我出一期中秋节的表白代码或者祝福程序!

好的安排!于是我连肝了两个晚上,重新拾起了自己之前的知识,采用turtle库以及pygame库 为大家带来了属于我们程序员专有的浪漫!
话不多说,先给大家看成果:
首先,我们打开程序,映入眼帘的是一幅正在缓缓展开的画卷 :

伴随着轻快优美的音乐,一下子就把我们带入了中秋快乐的场景中!

画面上展示的内容你也可以自己修改,在下文中会教大家怎样求修改哦~
在这幅画被完全展开后,就会迅速在她的桌面上展开99个小的弹窗:

当这些弹窗充满她的桌面,我相信没有一个女生不被你感动,亲测有效,如果她也对你感动的痛哭流涕记得回来给我点赞+收藏嗷~

接下来,我教大家如何一一去实现!
在这个工程文件中,我们使用的Python语言去实现,一般来讲我们使用Python3.7就可以基本完全可以了!不太懂的同学可以看这篇文章:手把手教你配置Python运行环境
同时我们需要安装第三方模块,直接在终端输入命令就可以安装了:
pip install 库的名称
在这里我们使用到的是:turtle time pygame random tkinter threading
import turtle
import time
import pygame
import random
import tkinter as tk
import threading
其中最主要的便是海龟画图: 海龟画图全解–值得你一看! (这篇文章写了很久了,是一些海龟画图最基础的操作,不太了解的小伙伴们可以拿这篇文章来快速入门海龟画图!)
我们通过控制画笔的上下移动来绘制月亮:

def drawMoon(): # 绘制月亮
turtle.penup() # 画笔拿起
turtle.goto(-150, 0)
turtle.fillcolor('yellow') # 圆月的颜色
turtle.pendown() # 画笔放下
turtle.begin_fill()
turtle.circle(112)
turtle.end_fill() # turtle.begin_fill() 到turtle.end_fill() 颜色填充
我们通过控制画笔的上下移动来绘制云朵:,方法参考上文:

def drawCloud(): # 绘制云朵
turtle.penup()
turtle.goto(-500, 200)
turtle.fillcolor((245, 245, 245))
turtle.pencolor((255, 255, 255))
turtle.pensize(5)
turtle.pendown()
turtle.forward(250)
def cloud(mode='right'):
for i in range(90):
turtle.pensize((i + 1) * 0.2 + 5)
turtle.right(1) if mode == 'right' else turtle.left(1)
turtle.forward(0.5)
for i in range(90):
turtle.pensize(90 * 0.2 + 5 - 0.2 * (i + 1))
turtle.right(1) if mode == 'right' else turtle.left(1)
turtle.forward(0.5)
cloud()
turtle.forward(100)
cloud('left')
turtle.forward(600)
这里我们控制画笔来绘制山川,由于我们绘制的山川只选择了两次起起落落,我们需要分别两次对其进行颜色填充,填充的个颜色是相同的,所以重叠部分我们不需要再做进一步的分析:

def drawMountain(): # 绘制山川
turtle.penup()
turtle.goto(-500, -250)
turtle.pensize(4)
turtle.fillcolor((36, 36, 36))
turtle.pencolor((31, 28, 24))
turtle.pendown()
turtle.begin_fill()
turtle.left(20)
turtle.forward(400)
turtle.right(45)
turtle.forward(200)
turtle.left(60)
turtle.forward(300)
turtle.right(70)
turtle.forward(300)
turtle.goto(500, -300)
turtle.goto(-500, -300)
turtle.end_fill()
这里使用Pygame模块中的mixer来控制音乐的播放,需要导入本地音乐路径,然后就可以啦!这样会使整个的绘制过程更加浪漫有趣!
pygame.mixer.music.play()
功能:开始播放音乐流
属性:play(loops=0, start=0.0, fade_ms = 0)
参数:
loops (int) – (可选) 重复音乐的次数。设置为5将播放五次音乐。设为-1可使音乐不确定地重复。
start (float) – (可选) 音乐开始播放的位置。起始位置取决于播放的音乐格式:MP3和OGG使用该位置为时间(秒)。对于MOD music,它是模式顺序号。如果无法设置起始位置,则传递起始位置将引发NotImplementedError。
fade_ms (int) – (可选) 使音乐在给定时间内开始以0音量播放并淡入到最大音量。片段可能在淡入完成之前结束。在PyGame2.0中添加。
def initTurtle():
pygame.mixer.init()
pygame.mixer.music.load('寂寞烟火.mp3')
pygame.mixer.music.play(-1, 20.0)
turtle.hideturtle()
turtle.setup(1000, 600)
turtle.title('中秋祝福')
turtle.colormode(255)
turtle.bgcolor('blue')
turtle.speed(1)
使用turtle中的write 写入祝福话语
turtle.write(‘宝贝,中秋节快乐!’, align=“center”, font=(“STXingkai”, 50, “bold”))

def writezhufu():
turtle.penup()
turtle.goto(400, -150)
turtle.pencolor((250, 240, 230))
# 诗句
potery = ['\n但\n愿\n人\n长\n久\n','\n千\n里\n共\n婵\n娟\n']
# 诗句位置(可自行设计添加), 最好2/4句五言诗
coordinates = [(300, -150), (200, -150), (100, -150)]
for i, p in enumerate(potery):
turtle.write(p, align="center", font=("STXingkai", 50, "bold"))
if (i + 1) != len(potery):
time.sleep(2)
turtle.goto(coordinates[i])
# 祝福话语
turtle.penup()
turtle.hideturtle() #隐藏箭头显示
turtle.goto(-110, -100)
turtle.color('red')
turtle.write('宝贝,中秋节快乐!', align="center", font=("STXingkai", 50, "bold"))
这里使用了tkinter模块来进行小弹窗的绘制,最后是用for循环来实现弹窗的重复性和随机性,这也是我觉得最大的创新之处吧!惊喜重重,满满心意与浪漫,哈哈哈。

def dow():
window = tk.Tk()
width = window.winfo_screenwidth()
height = window.winfo_screenheight()
a = random.randrange(0, width)
b = random.randrange(0, height)
window.title('中秋快乐')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='亲爱的中秋快乐', # 标签的文字
bg='red', # 背景颜色
font=('..', 17), # 字体和字体大小
width=18, height=2 # 标签长宽
).pack() # 固定窗口位置
window.mainloop()
最后写一个main函数入口,来进行程序的启动:if __name__ == '__main__': main()
for i in range(100): 需要的弹框数量 这里可以根据需求自己来确定
def main():
initTurtle()
drawMoon() # 绘制月亮
drawCloud() # 绘制云朵
drawMountain() # 绘制山
writezhufu() # 写诗
time.sleep(2)
threads = []
for i in range(100): # 需要的弹框数量
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.01)
threads[i].start()
if __name__ == '__main__':
main()
# @Time : 2022/8/23 10:38
# @Author : 是Dream呀
# @File : 中秋节.py
import turtle
import time
import pygame
import random
import tkinter as tk
import threading
def drawMoon(): # 绘制月亮
turtle.penup() # 画笔拿起
turtle.goto(-150, 0)
turtle.fillcolor('yellow') # 圆月的颜色
turtle.pendown() # 画笔放下
turtle.begin_fill()
turtle.circle(112)
turtle.end_fill() # turtle.begin_fill() 到turtle.end_fill() 颜色填充
def drawCloud(): # 绘制云朵
turtle.penup()
turtle.goto(-500, 200)
turtle.fillcolor((245, 245, 245))
turtle.pencolor((255, 255, 255))
turtle.pensize(5)
turtle.pendown()
turtle.forward(250)
def cloud(mode='right'):
for i in range(90):
turtle.pensize((i + 1) * 0.2 + 5)
turtle.right(1) if mode == 'right' else turtle.left(1)
turtle.forward(0.5)
for i in range(90):
turtle.pensize(90 * 0.2 + 5 - 0.2 * (i + 1))
turtle.right(1) if mode == 'right' else turtle.left(1)
turtle.forward(0.5)
cloud()
turtle.forward(100)
cloud('left')
turtle.forward(600)
def drawMountain(): # 绘制山川
turtle.penup()
turtle.goto(-500, -250)
turtle.pensize(4)
turtle.fillcolor((36, 36, 36))
turtle.pencolor((31, 28, 24))
turtle.pendown()
turtle.begin_fill()
turtle.left(20)
turtle.forward(400)
turtle.right(45)
turtle.forward(200)
turtle.left(60)
turtle.forward(300)
turtle.right(70)
turtle.forward(300)
turtle.goto(500, -300)
turtle.goto(-500, -300)
turtle.end_fill()
def initTurtle():
pygame.mixer.init()
pygame.mixer.music.load('寂寞烟火.mp3')
pygame.mixer.music.play(-1, 20.0)
turtle.hideturtle()
turtle.setup(1000, 600)
turtle.title('中秋祝福')
turtle.colormode(255)
turtle.bgcolor('blue')
turtle.speed(1)
def writezhufu():
turtle.penup()
turtle.goto(400, -150)
turtle.pencolor((250, 240, 230))
# 诗句
potery = ['\n但\n愿\n人\n长\n久\n','\n千\n里\n共\n婵\n娟\n']
# 诗句位置(可自行设计添加), 最好2/4句五言诗
coordinates = [(300, -150), (200, -150), (100, -150)]
for i, p in enumerate(potery):
turtle.write(p, align="center", font=("STXingkai", 50, "bold"))
if (i + 1) != len(potery):
time.sleep(2)
turtle.goto(coordinates[i])
# 祝福话语
turtle.penup()
turtle.hideturtle() #隐藏箭头显示
turtle.goto(-110, -100)
turtle.color('red')
turtle.write('宝贝,中秋节快乐!', align="center", font=("STXingkai", 50, "bold"))
# 弹窗设置
def dow():
window = tk.Tk()
width = window.winfo_screenwidth()
height = window.winfo_screenheight()
a = random.randrange(0, width)
b = random.randrange(0, height)
window.title('中秋快乐')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='亲爱的中秋快乐', # 标签的文字
bg='red', # 背景颜色
font=('..', 17), # 字体和字体大小
width=18, height=2 # 标签长宽
).pack() # 固定窗口位置
window.mainloop()
def main():
initTurtle()
drawMoon() # 绘制月亮
drawCloud() # 绘制云朵
drawMountain() # 绘制山
writezhufu() # 写诗
time.sleep(2)
threads = []
for i in range(100): # 需要的弹框数量
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.01)
threads[i].start()
if __name__ == '__main__':
main()
最后想获取本项目的所有文件源码以及配置环境,或者实在是对Python不懂,有问题的的同学欢迎在最下方添加我的个人VX(18300396393),获取原工程文件以及一键运行程序,同时想要学习Python的话:
欢迎订阅本专栏: 零基础学Python 系列课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
何处楼高,想清光先得。
阴晴圆缺白玉盘,聚散离合盼团圆。月明思念亲人切,朋友之义碧云天。归心似箭南归雁,合家团聚乐无边。中秋佳节传祝愿,福临万家俱欢颜。秋风送来清爽,秋雨浇灌希望,秋思充满梦想,秋情收获美满,中秋到来,花好月圆,美梦缠绵,天涯情牵,有情人终成眷属,祝中秋快乐,幸福美满。
祝福每个人中秋节快乐!
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~


⬇️⬇️ ⬇️ 商务合作|交流学习|粉丝福利|Python全套资料⬇️ ⬇️ ⬇️ 欢迎联系~
前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源
我正在运行rspec测试以确保两个模型通过has_many和belongs_to相互关联。下面是我的测试。describe"testingforhasmanylinks"dobeforedo@post=Post.new(day:"Day1",content:"Test")@link=Link.new(post_id:@post.id,title:"google",url:"google.com")endit"inthepostmodel"do@post.links.first.url.should=="google.com"endend测试告诉我url是一个未定义的方法。我的测试有什么
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我正在研究Ruby解释器是如何实现的,并且出现了一个问题,但我还没有得到答案。这就是标题中的那个:因为Class(r_cClass)将super设置为自身(忽略元类,因为实际上super是r_cClass的元类),如果我向Class对象发送一个方法,这将在Class的方法表中查找'类(class)。但是Class的类是Class,所以我不应该最终寻找Class的实例方法吗?但事实并非如此,因为在文档中Class类方法和Class实例方法是分开的。在Ruby的eval.c中的search_method中,我没有发现对Class类有什么特别的检查。任何人都可以阐明这一点吗?
我设置了属于客户类别的admin_users(客户是一家公司)。所以Customer有很多admin_users。我正在尝试限制对属于特定客户的装运记录的访问。我不希望客户看到其他客户的数据。所以我设置了它,但它似乎什么也没做......类(class)能力包括CanCan::Abilitydefinitialize(user)user||=AdminUser.newifuser.role=="administrator"can:manage,:allelsecannot:create,:allcannot:update,:allcannot:destroy,:allcan:read,
编辑:更改了标题。我对两个部分是否相同不太感兴趣,而是如果它们在一定的公差范围内彼此共线。如果是这样,那么这些线应该聚集在一起作为一个单独的线段。编辑:我想有一个简短的说法:我试图以一种有效的方式将相似的线段聚集在一起。假设我有线段f(fx0,fy0)和(fx1,fy1)和g(gx0,gy0)和(gx1,gy1)这些来自计算机视觉算法边缘检测器之类的东西,在某些情况下,两条线基本相同,但由于像素容差而被视为两条不同的线。有几种情况f和g共享完全相同的端点,例如:f=(0,0),(10,10)g=(0,0),(10,10)f和g共享大致相同的端点和大致相同的长度,例如:f=(0,0.01
我正在使用audited跟踪名为Page的模型的更改。我希望能够找到与特定用户关联的所有审核(通过审核表中的user_id)。我该怎么做?到目前为止,我发现访问Audit模型的唯一方法是这样的:@audits=Audited::Adapters::ActiveRecord::Audit.all这似乎不是正确的做事方式。尝试@audits=Audit.all给出了Uninitializedconstant错误。是否有更优雅的方式与Gem提供的模型进行交互? 最佳答案 也许是这样包含Audited::Adapters::ActiveRe
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我使用PHP的时间太长了,对它感到厌倦了。我也想学习一门新语言。我一直在使用Ruby并且喜欢它。我必须在Rails和Sinatra之间做出选择,那么您会推荐哪一个?Sinatra真的不能用来构建复杂的应用程序,它只能用于简单的应用程序吗?
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我是一名Ruby程序员,由于目前的项目需要学习RPGIV。我想学习原始类型、数据结构、控制流、体系结构等。在线资源和纸质书一样好。我应该从哪本书或在线教程开始?
Ap::Application.routes.drawdoresources:accountsend我想知道“资源”方法所属的类或模块。如果我在http://apidock.com/rails/中搜索“资源”方法(在提供的搜索文本框中),出现了一个类列表,其方法名称为“资源”。迷茫,知其法源。我可以在puts中使用它们查看来源的任何命令吗?问题有点初学者水平。谢谢 最佳答案 Ruby是一种面向对象的语言。虽然方法在Ruby中不是对象,但您可以要求Ruby给您一个Method对象来表示所讨论的方法,然后您可以简单地告诉Method给你