转眼又到了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表白秘笈送给你相关推荐

  1. sis防屏蔽程序_程序员如何写一份更好的简历

    01 引言 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时.现在就有很多求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔.写得太短的话HR一定觉得没 ...

  2. 程序员如何通过腾讯地图表白(使用到了个性化地图,点标记和动画等)

    都说程序员是钢铁直男,大家能忍吗?这次我们要用H5技术,展示我们浪漫的一面.看了下抖音上 #手掌地图 播放量较高,就选择做这个吧.先看一下最终效果: 程序员通过H5实现手掌地图进行表白 第一步,使用个 ...

  3. 37岁程序员失业投500份简历就3次面试猎头:超35岁不要

    37岁程序员失业120天,投了500份简历就3次面试,猎头:超过35岁都不要 在职场中,都说互联网吃青春饭,而35岁就是一个门槛,一旦到了这个年龄找工作都非常难,甚至被公司裁员的风险都很大,其实一个现 ...

  4. 程序员如何写一份更好的简历

    01 引言 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时.现在就有很多求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔.写得太短的话HR一定觉得没 ...

  5. 世界读书日:作为一个优秀的程序员请收藏这份书单

    ​4月23日世界读书日全称"世界图书与版权日",又称"世界图书日".最初的创意来自于国际出版商协会.由西班牙转交方案给了联合国教科文组织. 1995年11月15 ...

  6. 被裁员后,35岁程序员找了6份兼职,35岁被载的命运,谁能逃脱?

    随着全球疫情的持续发酵,经济大环境的逐渐恶劣也越来越影响到每个人的日常生活,所谓的"35岁失业"梗,正是在这样的时代背景下走进了大家的视线.而要说起哪类人最有可能面对这种定时失业的 ...

  7. 三·八节,菊厂程序员用“运动轨迹绘制”向女神表白

    程序员为女友而备的礼物清单里,除了玫瑰.包包.和口红,就没有其他有新意又有心意的惊喜了嘛? No!这个"×"是远在法国出差的阿强比的,作为菊厂一向低调行事的程序员,阿强决定在今年的 ...

  8. 【程序人生】程序员的浪漫,三步表白女神,成功率99%(程序员如何表白、求婚)

    目  录 一 写在前面 二 表白求婚 Step1.场景布置 Step2.求婚铺垫 Step3.表白宣言 三 写在最后 一 写在前面 在大多数人的眼里,程序员/IT男都是不懂浪漫.理性大于感性的直男群体 ...

  9. 黑马程序员--- 送大家一份毕老师的笔记

    文章来源:黑马程序员,黑马论坛. 送大家一份毕老师的笔记,自己一边看,一遍弄的,有很多截图,大家没事看两眼,当复习资料应该不错 http://pan.baidu.com/s/1pJPqglH

  10. Java程序员,按照这份模板“优化”简历,至少让你涨薪50%!

    什么是好的技术简历? 首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力. Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处 ...

最新文章

  1. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...
  2. echarts实现动态传入数据刷新【可执行】
  3. 《人生重开模拟器》爆火出圈,3天2亿流量却源于群内自嗨,网友:我提前看遍人生的无常...
  4. mysql tinyint和char(1)性能对比
  5. 超硬核!学霸把操作系统经典算法给敲完了!要知行合一
  6. python 粒子动画_python-盒子中有很多粒子-物理模拟
  7. 面试题:彻底搞懂 Cookie 和 Session
  8. autowired注入jar中的依赖_springboot项目中调用jar包中的类时报错 — 没有注入类
  9. 深南和海能达那个好_打造特色定制茶谋划茶旅融合发展 “海垦”牌南海茶整装再出发...
  10. 小视频app开发过程中关于转码问题的经验总结
  11. 跟踪slab分配堆栈流程的方法(perf、systemtap)
  12. Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
  13. mapbox 导航_散步、骑行线路随时可查!拱墅19条绿道实名确认,还有“魔鬼导航员”带你走……...
  14. 接上一章winhex数据恢复新手入门教程
  15. 解除WORD文档保护
  16. Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures论文翻译/笔记
  17. 基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用MPA算法
  18. 第一章:基于Visual C++ 6.0使用运动控制卡控制电机转动实验操作指导
  19. 怎样破坏程序的堆栈?
  20. [日程管理][Android]91todo日程任务管理

热门文章

  1. 鼠标移入移出时定时器加速的原因_2020年值得购买的鼠标有哪些?
  2. 江湖人物之滴滴打车张博
  3. JVM相关知识——内存分布和垃圾回收机制
  4. 非递归获取二叉树中叶子结点的个数
  5. python调用nmap扫描全端口_python nmap 扫描服务器端口
  6. matlab把结构按条件排序,matlab结构体数组排序
  7. 泛微e9隐藏明细表_泛微e-cology的Ecode二次开发无侵入定制说明
  8. 记事本下编写并运行Java代码
  9. java 通过经纬度计算巨鹿,中国主要城市经纬度查询
  10. 金蝶移动bos开发教程_移动BOS开发 -- 移动表单