zoukankan      html  css  js  c++  java
  • 程序员-这有一份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+' '
    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 plt

    with 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这天找到自己的幸福,表白成功!

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/hyhy904/p/10958449.html
Copyright © 2011-2022 走看看