程序员-这有一份520表白秘笈送给你
转眼又到了520表白节了,咱们程序员应该如何表白呢,接下来笔者就以亲自动笔给你们一份独家的表白秘笈。
一、比心
这个我之前介绍过母亲节的祝福方式https://blog.csdn.net/BEYONDMA/article/details/90137479,就是利用python的print函数去输出一个520的形状,以下程序可以运行在任何python版本,简单介绍其原理就是造一个能组成520形状的LIST,然后打印输出,具体代码如下:
ncol=20
nrow=10
proposal=[0,1,2,3,4,5,9,17,1+1*ncol,8+1*ncol,10+1*ncol,16+1*ncol,18+1*ncol,1+2*ncol,11+2*ncol,15+2*ncol,19+2*ncol,1+3*ncol,12+3*ncol,15+3*ncol,19+3*ncol,2+4*ncol,12+4*ncol,15+4*ncol,19+4*ncol,3+5*ncol,11+5*ncol,15+5*ncol,19+5*ncol,4+6*ncol,10+6*ncol,15+6*ncol,19+6*ncol,3+7*ncol,9+7*ncol,15+7*ncol,19+7*ncol,2+8*ncol,8+8*ncol,16+8*ncol,18+8*ncol,1+9*ncol,8+9*ncol,9+9*ncol,10+9*ncol,11+9*ncol,12+9*ncol,17+9*ncol]
proposalStr =''
for i in range(1,ncol*nrow):if i in proposal:proposalStr=proposalStr+'*'else:proposalStr = proposalStr + ' 'if i%20==0:proposalStr=proposalStr+'\r\n'
print(proposalStr)
效果如下:
二、制作照片墙
我们还可以利用python的图像处理功能,来把家庭中的点点滋润做成照片墙,如果是使用WINDOWS的读者请参考https://blog.csdn.net/BEYONDMA/article/details/88381705搭建环境。具体代码如下,简述其原理与上面的类似,也是利用520形状的矩阵,来布署照片,代码如下:
from PIL import Image
import os
path="F:/照片/2019/201901/pic"
canvasImage=Image.new('RGBA',(2000,1000))
ncol=20
nrow=10
proposal=[0,1,2,3,4,5,9,17,1+1*ncol,8+1*ncol,10+1*ncol,16+1*ncol,18+1*ncol,1+2*ncol,11+2*ncol,15+2*ncol,19+2*ncol,1+3*ncol,12+3*ncol,15+3*ncol,19+3*ncol,2+4*ncol,12+4*ncol,15+4*ncol,19+4*ncol,3+5*ncol,11+5*ncol,15+5*ncol,19+5*ncol,4+6*ncol,10+6*ncol,15+6*ncol,19+6*ncol,3+7*ncol,9+7*ncol,15+7*ncol,19+7*ncol,2+8*ncol,8+8*ncol,16+8*ncol,18+8*ncol,1+9*ncol,8+9*ncol,9+9*ncol,10+9*ncol,11+9*ncol,12+9*ncol,17+9*ncol]
listPic=[]
for i in os.walk(path):listPic.append(i)
k=0
for j in range(1, 200):if j in proposal:orgImage = Image.open(os.path.join(path,listPic[0][2][k]))print(orgImage)canvasRow = j % 20;canvasCol = int((j - canvasRow) / 20);print(canvasRow)print(canvasCol)print()orgImage = orgImage.resize((100, 100), Image.ANTIALIAS)canvasImage.paste(orgImage, (canvasRow * 100, canvasCol * 100))k=k+1
canvasImage.save('F:/new.bmp')
效果示意图如下:
三、对话词云制作
还可以用我们之前介绍的wordcloud制作一个词云来表达爱意,具体可以将恋人之间的微信对话通过邮件方式导出文本,然后制作成词云,这里只要将词云的背景设置为我下面的截图即可
代码如下:
from wordcloud import WordCloud
import cv2
import jieba
import matplotlib.pyplot as pltwith open('F:/520/520.txt', 'r') as f:text = f.read()cut_text = " ".join(jieba.cut(text))
print(cut_text)
color_mask = cv2.imread("F:/520/mask.jpg")520cloud = WordCloud(font_path=" C:\\Windows\\Fonts\\simkai.ttf",background_color='white',mask=color_mask,max_words=100,max_font_size=40
)520wCloud = 520cloud.generate(cut_text)
520wCloud.to_file('F:/520/cloud.jpg')plt.imshow(520wCloud, interpolation='bilinear')
plt.axis('off')
plt.show()
效果示意如下:
怎么样这几个例子都不难,而且自己敲一下代码,还能学到不少python的知识,最后祝天下有情人终成眷属吧,也祝各位IT人都能在520这天找到自己的幸福,表白成功!
程序员-这有一份520表白秘笈送给你相关推荐
- sis防屏蔽程序_程序员如何写一份更好的简历
01 引言 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时.现在就有很多求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔.写得太短的话HR一定觉得没 ...
- 程序员如何通过腾讯地图表白(使用到了个性化地图,点标记和动画等)
都说程序员是钢铁直男,大家能忍吗?这次我们要用H5技术,展示我们浪漫的一面.看了下抖音上 #手掌地图 播放量较高,就选择做这个吧.先看一下最终效果: 程序员通过H5实现手掌地图进行表白 第一步,使用个 ...
- 37岁程序员失业投500份简历就3次面试猎头:超35岁不要
37岁程序员失业120天,投了500份简历就3次面试,猎头:超过35岁都不要 在职场中,都说互联网吃青春饭,而35岁就是一个门槛,一旦到了这个年龄找工作都非常难,甚至被公司裁员的风险都很大,其实一个现 ...
- 程序员如何写一份更好的简历
01 引言 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时.现在就有很多求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔.写得太短的话HR一定觉得没 ...
- 世界读书日:作为一个优秀的程序员请收藏这份书单
4月23日世界读书日全称"世界图书与版权日",又称"世界图书日".最初的创意来自于国际出版商协会.由西班牙转交方案给了联合国教科文组织. 1995年11月15 ...
- 被裁员后,35岁程序员找了6份兼职,35岁被载的命运,谁能逃脱?
随着全球疫情的持续发酵,经济大环境的逐渐恶劣也越来越影响到每个人的日常生活,所谓的"35岁失业"梗,正是在这样的时代背景下走进了大家的视线.而要说起哪类人最有可能面对这种定时失业的 ...
- 三·八节,菊厂程序员用“运动轨迹绘制”向女神表白
程序员为女友而备的礼物清单里,除了玫瑰.包包.和口红,就没有其他有新意又有心意的惊喜了嘛? No!这个"×"是远在法国出差的阿强比的,作为菊厂一向低调行事的程序员,阿强决定在今年的 ...
- 【程序人生】程序员的浪漫,三步表白女神,成功率99%(程序员如何表白、求婚)
目 录 一 写在前面 二 表白求婚 Step1.场景布置 Step2.求婚铺垫 Step3.表白宣言 三 写在最后 一 写在前面 在大多数人的眼里,程序员/IT男都是不懂浪漫.理性大于感性的直男群体 ...
- 黑马程序员--- 送大家一份毕老师的笔记
文章来源:黑马程序员,黑马论坛. 送大家一份毕老师的笔记,自己一边看,一遍弄的,有很多截图,大家没事看两眼,当复习资料应该不错 http://pan.baidu.com/s/1pJPqglH
- Java程序员,按照这份模板“优化”简历,至少让你涨薪50%!
什么是好的技术简历? 首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力. Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处 ...
最新文章
- java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...
- echarts实现动态传入数据刷新【可执行】
- 《人生重开模拟器》爆火出圈,3天2亿流量却源于群内自嗨,网友:我提前看遍人生的无常...
- mysql tinyint和char(1)性能对比
- 超硬核!学霸把操作系统经典算法给敲完了!要知行合一
- python 粒子动画_python-盒子中有很多粒子-物理模拟
- 面试题:彻底搞懂 Cookie 和 Session
- autowired注入jar中的依赖_springboot项目中调用jar包中的类时报错 — 没有注入类
- 深南和海能达那个好_打造特色定制茶谋划茶旅融合发展 “海垦”牌南海茶整装再出发...
- 小视频app开发过程中关于转码问题的经验总结
- 跟踪slab分配堆栈流程的方法(perf、systemtap)
- Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
- mapbox 导航_散步、骑行线路随时可查!拱墅19条绿道实名确认,还有“魔鬼导航员”带你走……...
- 接上一章winhex数据恢复新手入门教程
- 解除WORD文档保护
- Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures论文翻译/笔记
- 基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用MPA算法
- 第一章:基于Visual C++ 6.0使用运动控制卡控制电机转动实验操作指导
- 怎样破坏程序的堆栈?
- [日程管理][Android]91todo日程任务管理