利用 Python 写个七夕表白神器

今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771
爱心树
首先,我们来画一棵长满爱心果实的树。

主要实现代码:
# 画爱心
def love(x, y):
lv = turtle.Turtle()
lv.hideturtle()
lv.up()
# 定位
lv.goto(x, y)
# 画圆弧
def curvemove():
for i in range(20):
lv.right(10)
lv.forward(2) lv.color('red', 'pink')
lv.speed(10000000)
lv.pensize(1)
lv.down()
lv.begin_fill()
lv.left(140)
lv.forward(22)
curvemove()
lv.left(120)
curvemove()
lv.forward(22)
# 画完复位
lv.left(140)
lv.end_fill() # 画树
def tree(branchLen, t):
# 剩余树枝太少要结束递归
if branchLen > 5:
# 如果树枝剩余长度较短则变绿
if branchLen < 20:
t.color("green")
t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
t.down()
t.forward(branchLen)
love(t.xcor(), t.ycor())
t.up()
t.backward(branchLen)
t.color("brown")
return
t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
t.down()
t.forward(branchLen)
# 以下递归
ang = random.uniform(15, 45)
t.right(ang)
# 随机决定减小长度
tree(branchLen - random.uniform(12, 16), t)
t.left(2 * ang)
# 随机决定减小长度
tree(branchLen - random.uniform(12, 16), t)
t.right(ang)
t.up()
t.backward(branchLen)
表白气球
我们接着看一下表白气球的实现,要实现的效果是:随机生成各种颜色向上漂浮的气球,点击气球会破。

主要实现代码如下:
# 气球
balloons = []
# 颜色
color_option = ["red", "blue", "green", "purple", "pink", "yellow", "orange"]
# 气球大小
size = 50
# 气球线
def line(x, y, a, b, line_width=1, 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) ** 2 + (b - y) ** 2) ** 0.5
def tap(x, y):
for i in range(len(balloons)):
# 判断是否点击气球队列中的其中一个
if distance(x, y, balloons[i][0], balloons[i][1]) < (size / 2):
# 删除气球
balloons.pop(i)
return
def draw():
# 清除画布
clear()
for i in range(1, (len(balloons) + 1)):
line(balloons[-i][0], balloons[-i][1], balloons[-i][0], balloons[-i][1] - size * 1.5, 1)
up()
goto(balloons[-i][0], balloons[-i][1])
# 画原点,参数为大小和颜色
dot(size, balloons[-i][2])
# 改变纵坐标,模仿气球上升
balloons[-i][1] = balloons[-i][1] + 1
# 修改画布
update()
def gameLoop():
# 1/50 的概率生成一个气球
if randrange(0, 50) == 1:
# 气球坐标,在边框位置减去气球大小
x = randrange(-200 + size, 200 - size)
# 随机在颜色队列选择一个颜色
c = choice(color_option)
# 添加气球队列
balloons.append([x, -200 - size, c])
draw()
ontimer(gameLoop, 10)
表白卡
我们可以通过 Python 在原有照片上添加一些适合主题的诗词来制作表白卡。
原图:

效果图:

主要实现代码如下:
img = cv2.imread('test.png')
mask = np.zeros(img.shape[:2], np.uint8)
size = (1, 65)
bgd = np.zeros(size, np.float64)
fgd = np.zeros(size, np.float64)
rect = (1, 1, img.shape[1], img.shape[0])
cv2.grabCut(img, mask, rect, bgd, fgd, 10, cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask == 2) | (mask == 0), 1, 255)
img = img.astype(np.int32)
img *= mask2[:, :, np.newaxis]
img[img>255] = 255
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=200).generate(text)
image=wordcloud.to_image()
image.save("wordcloud2.png")
cloud_data = np.array(image)
alpha = np.copy(cloud_data[:,:,0])
alpha[alpha>0] = 255
new_image = Image.fromarray(np.dstack((cloud_data, alpha)))
card = Image.open("test.png")
card = card.convert("RGBA")
card.paste(new_image, (0,0), mask=new_image)
card.save("card.png")
当然了,除了这些还可以画玫瑰花什么的
利用 Python 写个七夕表白神器的更多相关文章
- 用 Python 写个七夕表白神器
今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 爱心树 ...
- 入门Python实现七夕表白神器
from PIL import Image, ImageDraw, ImageFont font_size = 7 #This var can change the Word's blank size ...
- 利用 Python 写一个颜值测试小工具
我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...
- 利用Python写一个抽奖程序,解密游戏内抽奖的秘密
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- 【Python开发】【神经网络与深度学习】如何利用Python写简单网络爬虫
平时没事喜欢看看freebuf的文章,今天在看文章的时候,无线网总是时断时续,于是自己心血来潮就动手写了这个网络爬虫,将页面保存下来方便查看 先分析网站内容,红色部分即是网站文章内容div,可以看 ...
- 利用python写一个简单的小爬虫 爬虫日记(1)(好好学习)
打开py的IDLE >>>import urllib.request >>>a=urllib.request.urlopen("http://www.ba ...
- 读书笔记汇总 --- 用Python写网络爬虫
本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...
- python 写的http后台弱口令爆破工具
今天来弄一个后台破解的Python小程序,哈哈,直接上代码吧,都有注释~~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- Python写春联(turtle版)
Python就好比编程界的瑞士军刀,开箱即用.无所不能.这得益于Python简洁易用的语法,以及丰富的第三方库,你想在电脑上做什么,总能找到事半功倍的第三方库.比如,在这新春佳节之际,用Python来 ...
随机推荐
- 安装Hive 使用beeline 链接 出现 User: AAA is not allowed to impersonate BBB
AAA 指的是 hdfs 文件系统的用户 BBB 是hive 设置的 hiveserver2 配置文件中的登陆用户名 在hadoop 配置如下 <property> <name> ...
- 【NOI2001】方程的解数 题解(dfs+哈希)
题目描述 已知一个方程 k1*x1^p1+k2*x2^p2……+kn*xn^pn=0. 求解的个数.其中1<=x<=150,1<=p<=6; 答案在int范围内 输入格式 第一 ...
- 六种酷炫Python运行进度条
本文介绍了目前6种比较常用的进度条,让大家都能直观地看到脚本运行最新的进展情况 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做 ...
- 「查缺补漏」巩固你的Redis知识体系
Windows Redis 安装 链接: https://pan.baidu.com/s/1MJnzX_qRuNXJI09euzkPGA 提取码: 2c6w 复制这段内容后打开百度网盘手机App,操作 ...
- java_static、final、super、this关键字的使用
static关键字 它可以修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象. 当 static 修饰成员变量时,该变量称为类变量 static 数据类型 变量名: 当 sta ...
- JavaScript小游戏实例:简单的键盘练习
键盘是一种常用的输入设备,灵活熟练地使用键盘进行输入是计算机用户需掌握的一门基本功.下面我们编写一个简单的键盘练习游戏. 1.刺破气泡交互式小动画 在编写简单的键盘练习游戏之前,先设计一个简单地刺破气 ...
- Elasticsearch第二篇:基本概念和基础操作
上一篇文章,我们已经是在Windows10 上搭建了 Elasticsearch 环境已经安装了相关的插件,现在我们就可以像操作webapi一样简单的操作 ElasticSearch 了,有园友说可以 ...
- C#LeetCode刷题之#374-猜数字大小(Guess Number Higher or Lower)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3993 访问. 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 ...
- keil 5.29 无法找到 flash的算法文件
安装5.29之后,发现编译文件可以,但是Debuger下的flash download找不到对应的flash文件 解决, 重新 安装keil5.29时,PACK的目录选择安装在Keil同级目录下的AR ...
- Who Am I? Personality Detection based on Deep Learning for Texts 阅读笔记
文章目录 源代码github地址 摘要 2CLSTM 过程 1. 词嵌入 2. 2LSTM处理 3. CNN学习LSGCNN学习LSG 4. Softmax分类 源代码github地址 https:/ ...