今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了。

爱心树

首先,我们来画一棵长满爱心果实的树。

主要实现代码:

# 画爱心
def love(x, y):
lv = turtle.Turtle()
lv.hideturtle()
lv.up()
# 定位
lv.goto(x, y)
# 画圆弧
def curvemove():
for i in range():
lv.right()
lv.forward() lv.color('red', 'pink')
lv.speed()
lv.pensize()
lv.down()
lv.begin_fill()
lv.left()
lv.forward()
curvemove()
lv.left()
curvemove()
lv.forward()
# 画完复位
lv.left()
lv.end_fill() # 画树
def tree(branchLen, t):
# 剩余树枝太少要结束递归
if branchLen > :
# 如果树枝剩余长度较短则变绿
if branchLen < :
t.color("green")
t.pensize(random.uniform((branchLen + ) / - , (branchLen + ) / + ))
t.down()
t.forward(branchLen)
love(t.xcor(), t.ycor())
t.up()
t.backward(branchLen)
t.color("brown")
return
t.pensize(random.uniform((branchLen + ) / - , (branchLen + ) / + ))
t.down()
t.forward(branchLen)
# 以下递归
ang = random.uniform(, )
t.right(ang)
# 随机决定减小长度
tree(branchLen - random.uniform(, ), t)
t.left( * ang)
# 随机决定减小长度
tree(branchLen - random.uniform(, ), t)
t.right(ang)
t.up()
t.backward(branchLen)

表白气球

我们接着看一下表白气球的实现,要实现的效果是:随机生成各种颜色向上漂浮的气球,点击气球会破。

主要实现代码如下:

# 气球
balloons = []
# 颜色
color_option = ["red", "blue", "green", "purple", "pink", "yellow", "orange"]
# 气球大小
size =
# 气球线
def line(x, y, a, b, line_width=, color_name="black"):
up()
goto(x, y)
down()
color(color_name)
width(line_width)
goto(a, b) def distance(x, y, a, b):
# 判断鼠标点击位置和气球坐标的距离
return ((a - x) ** + (b - y) ** ) ** 0.5
def tap(x, y):
for i in range(len(balloons)):
# 判断是否点击气球队列中的其中一个
if distance(x, y, balloons[i][], balloons[i][]) < (size / ):
# 删除气球
balloons.pop(i)
return
def draw():
# 清除画布
clear()
for i in range(, (len(balloons) + )):
line(balloons[-i][], balloons[-i][], balloons[-i][], balloons[-i][] - size * 1.5, )
up()
goto(balloons[-i][], balloons[-i][])
# 画原点,参数为大小和颜色
dot(size, balloons[-i][])
# 改变纵坐标,模仿气球上升
balloons[-i][] = balloons[-i][] +
# 修改画布
update()
def gameLoop():
# / 的概率生成一个气球
if randrange(, ) == :
# 气球坐标,在边框位置减去气球大小
x = randrange(- + size, - size)
# 随机在颜色队列选择一个颜色
c = choice(color_option)
# 添加气球队列
balloons.append([x, - - size, c])
draw()
ontimer(gameLoop, )

表白卡

我们可以通过 Python 在原有照片上添加一些适合主题的诗词来制作表白卡。

原图:

效果图:

主要实现代码如下:

img = cv2.imread('test.png')
mask = np.zeros(img.shape[:], np.uint8)
size = (, )
bgd = np.zeros(size, np.float64)
fgd = np.zeros(size, np.float64)
rect = (, , img.shape[], img.shape[])
cv2.grabCut(img, mask, rect, bgd, fgd, , cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask == ) | (mask == ), , )
img = img.astype(np.int32)
img *= mask2[:, :, np.newaxis]
img[img>] =
img =img.astype(np.uint8)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = Image.fromarray(img, 'RGB')
img.save('test1.jpg')
fp = open(r"word.txt", "r", encoding="utf-8")
text = fp.read()
mask_pic=np.array(Image.open(r"test1.jpg"))
wordcloud = WordCloud(font_path='hyr3gjm.ttf',mask=mask_pic,max_words=).generate(text)
image=wordcloud.to_image()
image.save("wordcloud2.png")
cloud_data = np.array(image)
alpha = np.copy(cloud_data[:,:,])
alpha[alpha>] =
new_image = Image.fromarray(np.dstack((cloud_data, alpha)))
card = Image.open("test.png")
card = card.convert("RGBA")
card.paste(new_image, (,), mask=new_image)
card.save("card.png")

当然了,除了这些还可以画玫瑰花什么的,可以看一下:520

欢迎微信搜索 Python小二,第一时间阅读、获取源码,回复关键字 1024 可以免费领取个人整理的各类编程语言学习资料。

用 Python 写个七夕表白神器的更多相关文章

  1. 利用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 很多人 ...

  2. 入门Python实现七夕表白神器

    from PIL import Image, ImageDraw, ImageFont font_size = 7 #This var can change the Word's blank size ...

  3. 教你用python写:HDU刷题神器

    声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定 ...

  4. Python写各大聊天系统的屏蔽脏话功能原理

    Python写各大聊天系统的屏蔽脏话功能原理 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时 ...

  5. python写红包的原理流程包含random,lambda其中的使用和见简单介绍

    Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机 ...

  6. Python写地铁的到站的原理简易版

    Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这 ...

  7. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  8. 基于Html5的爱情主题网站–表白神器(第二版)

    第二版在第一版的基础上增加了一个动态3D的白云效果背景,鼠标悬浮在页面上云朵会向屏幕Z轴方向运动,在第一人称视角看来向着云朵方向前进的,由此形成一个伪3D效果.有点绕,直接看demo就能理解了.3D白 ...

  9. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

随机推荐

  1. Error:java:错误:不支持发行版本 5(或写着其他版本的~)

      很多人会出现:Error:java:错误:不支持发行版本 5(或13等版本),均是因为此几个地方版本不一致 [若你下载的jdk版本真的是5,请你更新jdk !!]   (上图打开方式:左上角,Fi ...

  2. x86架构: 硬件启动过程分析(附引导启动代码)

    用户按下开机键,几秒的时间,都经历了啥? 1.cpu各个寄存器赋初始值,cs.base=0xffff0000, eip=0xfff0,其他寄存器都是0,这时cs:ip得到的物理地址:0xfffffff ...

  3. java动态代理——jvm指令集基本概念和方法字节码结构的进一步探究及proxy源码分析四

    前文地址 https://www.cnblogs.com/tera/p/13336627.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...

  4. Core下简易WebApi

    代码很粗糙~ 粘贴github地址 https://github.com/htrlq/MiniAspNetCoreMini demo public class Startup { public Sta ...

  5. 浅谈js数组中的length属性

    前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 内容 首先,我们都知道每个数组都有一个length属性 这个length属性一般我们用来循环遍历的约束,一般我们都会把他认为是该数组里面有几个元素这个 ...

  6. 【Python 实例】面向对象 | 按逗号分割列表

    [Python 实例]面向对象 | 按逗号分割列表 题目: 按逗号分割列表 应该得到如下结果: ["xx"],["xx"],["xx"] 解 ...

  7. Python玩转各种多媒体,视频、音频到图片

    我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...

  8. Java日志框架(一)

    在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而言,日志记录是一个非常重要的问题.因此,如何选择一个合适的日志记录框架也 ...

  9. 学习Hibernate5这一篇就够了

    配套资料,免费下载 链接:https://pan.baidu.com/s/1i_RXtOyN1e4MMph6V7ZF-g 提取码:8dw6 复制这段内容后打开百度网盘手机App,操作更方便哦 第一章 ...

  10. 准确率、精确率、召回率、F1

    在搭建一个AI模型或者是机器学习模型的时候怎么去评估模型,比如我们前期讲的利用朴素贝叶斯算法做的垃圾邮件分类算法,我们如何取评估它.我们需要一套完整的评估方法对我们的模型进行正确的评估,如果模型效果比 ...