娜璋初识(一)你的酒窝没有酒,我却醉得像条狗,看程序员如何表白

娜璋故事系列 专栏收录该内容
4 篇文章 6 订阅

这系列文章本不打算在CSDN发布,因为太腻,因为太爱,也担心读者吃不下这口狗粮。但是最近看到“情人节主题征文”活动,我俩也算是CSDN牵出的一段姻缘,索性就将该系列慢慢撰写出来,希望您喜欢,就当是程序猿的爱情周边吧!也算是对CSDN征文活动的支持。同时,文章末尾会撰写多种类型的表白代码,这一点点福利希望对您有用,Let’s GO。

在这里插入图片描述

转眼2021年,首先祝女神生日快乐呀,永远十八岁。其次感谢她的付出与支持,仅以此系列故事回首两人的点点滴滴。一篇文章,两个主角,几片故事,呆萌人生。人间如花丛,惟愿从"娜"片花丛中采撷一点点精华,用简单的文字抒写属于我俩的美丽国度,仅以此篇献给我的娜。

“以前很多朋友总问你挑来挑去,到底要找一个什么样的?现在我知道了,对的人出现有时候真的很突然,但就像上苍赐予的礼物,迫不及待的拆开,里面的所有都是惊喜。漫漫人生路,以后一起走,以后的衣服我陪你买,以后还会有另一个人记住你的生日,冬月初一。”——娜

“有时候真的觉得自己好幸福,有这么一个呵护我、爱我、读懂我灵魂的人。一万年太久,只争朝夕,你就是那滴朝露,那片余辉,惟心之永随才是一生的执着。二十五载第一次心动,第一次追求女生,第一次精心准备礼物,太多的第一次,珍爱word娜。这个故事真的好美,好美,如梦似幻却又那么真实,永远让人陶醉。” ——璋

在这里插入图片描述

​回过头来想想,我俩之所以能在一起,
一见钟情,相爱相惜,其实冥冥中早有天意。
茫茫人海,多少次可能遇见又擦肩而过,
我们沿着各自的轨迹成长,
直到某天突然回头对视,两条平行线终于有了交汇点。

你不嫌弃我挫与傻,不嫌弃我不懂浪漫,不嫌弃我一无所有;
我也不在乎你的学识,不在乎你是否升职,不在乎能否获得功名利禄。
你想要的只是一个踏实的胸膛与温暖的家,
我争朝夕也只想带给你温馨与快乐,并一直维持下去相约到白头。

这就是所谓的读懂我灵魂深处的人吧,
娜娜从某种程度也是另一个秀璋!
男女在一起最重要的是相互理解,
根深蒂固的理解才能相互欣赏、吸引、支持和鼓励,
才能两情相悦,才能漫漫人生到白头。
若我白发苍苍,容颜迟暮;愿你依旧如此,牵我双手,倾世温柔。
唯有普通、平凡、琐碎的情感,才能让你感到亲切踏实,家一般的温暖。


一.这些年我的表白代码

本文先介绍技术,再叙述两人的故事。作为程序员,这些年给女神写了无数的表白代码。这里先分享一部分,希望对您有所帮助,尤其是有喜欢的女生,抓紧吧、~

1.最简单的Python一句话表白
每次我上《Python数据挖掘》或《大数据分析》课程时,都会给学生普及一句话表白代码,这是非常简单有趣的代码。

print('\n'.join([''.join([('loveNana'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

运行结果如下图所示,输出“lovaNana”的桃心。

在这里插入图片描述

同样可以调用笛卡尔函数绘制桃心,这也是我课堂布置的某个作业。

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-8 , 8, 1024)
y1 = 0.618*np.abs(x) - 0.8* np.sqrt(64-x**2)  #左部分
y2 = 0.618*np.abs(x) + 0.8* np.sqrt(64-x**2)  #右部分
plt.plot(x, y1, color = 'r')
plt.plot(x, y2, color = 'r')
plt.show()

在这里插入图片描述


2.Python绘制红色桃心
如果你觉得上面的代码颜色不够喜庆,接下来我们调用turtle库绘制动态红色的桃心。

from turtle import *

#初始设置
setup(750,500)
penup()
pensize(25)
pencolor("pink")
fd(-230)
seth(90)
pendown()

#绘制桃心
circle(-50,180)
circle(50,-180)
circle(75,-50)
circle(-190,-45)
penup()
fd(185)
seth(180)
fd(120)
seth(90)
pendown()
circle(-75,-50)
circle(190,-45)
penup()
fd(184)
seth(0)
fd(80)
seth(90)
pendown()
circle(-50,180)
circle(50,-180)
circle(75,-50)
circle(-190,-45)
penup()
fd(185)
seth(180)
fd(120)
seth(90)
pendown()
circle(-75,-50)
circle(190,-45)
penup()
fd(150)
seth(180)
fd(300)

#绘制箭头
pencolor("red")
pensize(10)
pendown()
fd(-500)
seth(90)
fd(30)
fd(-60)
seth(30)
fd(60)
seth(150)
fd(60)
done()

运行效果如下图所示:

在这里插入图片描述


3.Python绘制3D红色桃心
如果还是觉得桃心单调,我们可以绘制3D桃心,主要调用Axes3D和Matplotlib包实现。代码如下:

#coding:utf-8
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
 
#绘制3D桃心
def heart_3d(x,y,z):
    return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3
 
#图像展示
def plot_implicit(fn, bbox=(-1.5, 1.5)):
    xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    A = np.linspace(xmin, xmax, 100)  #resolution of the contour
    B = np.linspace(xmin, xmax, 40)   #number of slices
    A1, A2 = np.meshgrid(A, A)        #grid on which the contour is plotted

    #plot contours in the XY plane
    for z in B:
        X, Y = A1, A2
        Z = fn(X, Y, z)
        cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))
        # [z] defines the only level to plot
        # for this contour for this value of z

    #plot contours in the XZ plane
    for y in B: 
        X, Z = A1, A2
        Y = fn(X, y, Z)
        cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))
 
    #plot contours in the YZ plane
    for x in B: 
        Y, Z = A1, A2
        X = fn(x, Y, Z)
        cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))

    #轴
    ax.set_zlim3d(zmin, zmax)
    ax.set_xlim3d(xmin, xmax)
    ax.set_ylim3d(ymin, ymax)

    #显示图像
    plt.show()

#主函数
if __name__ == '__main__':
    plot_implicit(heart_3d)

输出结果如下图所示:

在这里插入图片描述


4.WordCloud词云绘制属于两人的聊天记录
“词云”就是对网络文本中出现频率较高的关键词,予以视觉上的突出,使浏览网页者只要一眼扫过文本就可以领略文本的主旨,主要利用文本挖掘和可视化技术。作者将两人的微信聊天记录导出,利用下面的代码绘制属于两人的词云图,其中“宝宝”、“我们”、“哈哈”最多。如果增加停用词过滤,可以看到属于你们的故事喔~

# -*- coding: utf-8 -*-  
from os import path  
from scipy.misc import imread    
import jieba  
import sys  
import matplotlib.pyplot as plt  
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator    
  
# 打开本体TXT文件  
text = open('test.txt').read()  
  
# 结巴分词 cut_all=True 设置为全模式   
wordlist = jieba.cut(text)     #cut_all = True  
  
# 使用空格连接 进行中文分词  
wl_space_split = " ".join(wordlist)  
print(wl_space_split)
  
# 读取mask/color图片  
d = path.dirname(__file__)  
nana_coloring = imread(path.join(d, "mb.png"))  
  
# 对分词后的文本生成词云  
my_wordcloud = WordCloud( background_color = 'white',    
                            mask = nana_coloring,         
                            max_words = 2000,            
                            stopwords = STOPWORDS,       
                            max_font_size = 50,          
                            random_state = 30,          
                            )  
  
# generate word cloud   
my_wordcloud.generate(wl_space_split)  
  
# create coloring from image    
image_colors = ImageColorGenerator(nana_coloring)  
  
# recolor wordcloud and show    
my_wordcloud.recolor(color_func=image_colors)  
  
plt.imshow(my_wordcloud)    # 显示词云图  
plt.axis("off")             # 是否显示x轴、y轴下标  
plt.show()  
  
# save img    
my_wordcloud.to_file(path.join(d, "cloudimg.png"))  

在这里插入图片描述

在这里插入图片描述


5.利用Python图像处理绘制属于女神的头像
作者之前分享了图像处理,同样我们可以用Python制作各种图像处理,为女神量身定义一个PS工具。这里分享相关代码:

#encoding:utf-8
#By:Eastmount CSDN 2021-02-06
import cv2  
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import math
 
#读取图片
img = cv2.imread('na.png')
src = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

#新建目标图像
dst1 = np.zeros_like(img)

#获取图像行和列
rows, cols = img.shape[:2]

#--------------------------------毛玻璃效果-----------------------------------
#像素点邻域内随机像素点的颜色替代当前像素点的颜色
offsets = 5
random_num = 0
for y in range(rows - offsets):
    for x in range(cols - offsets):
        random_num = np.random.randint(0,offsets)
        dst1[y,x] = src[y + random_num,x + random_num]

#--------------------------------油漆特效-------------------------------------
#图像灰度处理
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#自定义卷积核
kernel = np.array([[-1,-1,-1],[-1,10,-1],[-1,-1,-1]])

#图像浮雕效果
dst2 = cv2.filter2D(gray, -1, kernel)

#--------------------------------素描特效-------------------------------------
#高斯滤波降噪
gaussian = cv2.GaussianBlur(gray, (5,5), 0)
 
#Canny算子
canny = cv2.Canny(gaussian, 50, 150)

#阈值化处理
ret, dst3 = cv2.threshold(canny, 100, 255, cv2.THRESH_BINARY_INV)

#--------------------------------怀旧特效-------------------------------------
#新建目标图像
dst4 = np.zeros((rows, cols, 3), dtype="uint8")

#图像怀旧特效
for i in range(rows):
    for j in range(cols):
        B = 0.272*img[i,j][2] + 0.534*img[i,j][1] + 0.131*img[i,j][0]
        G = 0.349*img[i,j][2] + 0.686*img[i,j][1] + 0.168*img[i,j][0]
        R = 0.393*img[i,j][2] + 0.769*img[i,j][1] + 0.189*img[i,j][0]
        if B>255:
            B = 255
        if G>255:
            G = 255
        if R>255:
            R = 255
        dst4[i,j] = np.uint8((B, G, R))

#--------------------------------光照特效-------------------------------------
#设置中心点
centerX = rows / 2
centerY = cols / 2
print(centerX, centerY)
radius = min(centerX, centerY)
print(radius)

#设置光照强度
strength = 200

#新建目标图像
dst5 = np.zeros((rows, cols, 3), dtype="uint8")

#图像光照特效
for i in range(rows):
    for j in range(cols):
        #计算当前点到光照中心的距离(平面坐标系中两点之间的距离)
        distance = math.pow((centerY-j), 2) + math.pow((centerX-i), 2)
        #获取原始图像
        B =  src[i,j][0]
        G =  src[i,j][1]
        R = src[i,j][2]
        if (distance < radius * radius):
            #按照距离大小计算增强的光照值
            result = (int)(strength*( 1.0 - math.sqrt(distance) / radius ))
            B = src[i,j][0] + result
            G = src[i,j][1] + result
            R = src[i,j][2] + result
            #判断边界 防止越界
            B = min(255, max(0, B))
            G = min(255, max(0, G))
            R = min(255, max(0, R))
            dst5[i,j] = np.uint8((B, G, R))
        else:
            dst5[i,j] = np.uint8((B, G, R))

#--------------------------------怀旧特效-------------------------------------
#新建目标图像
dst6 = np.zeros((rows, cols, 3), dtype="uint8")

#图像流年特效
for i in range(rows):
    for j in range(cols):
        #B通道的数值开平方乘以参数12
        B = math.sqrt(src[i,j][0]) * 12
        G =  src[i,j][1]
        R =  src[i,j][2]
        if B>255:
            B = 255
        dst6[i,j] = np.uint8((B, G, R))

#--------------------------------卡通特效-------------------------------------
#定义双边滤波的数目
num_bilateral = 7

#用高斯金字塔降低取样
img_color = src

#双边滤波处理
for i in range(num_bilateral):
    img_color = cv2.bilateralFilter(img_color, d=9, sigmaColor=9, sigmaSpace=7)

#灰度图像转换
img_gray = cv2.cvtColor(src, cv2.COLOR_RGB2GRAY)

#中值滤波处理
img_blur = cv2.medianBlur(img_gray, 7)

#边缘检测及自适应阈值化处理
img_edge = cv2.adaptiveThreshold(img_blur, 255,
                                 cv2.ADAPTIVE_THRESH_MEAN_C,
                                 cv2.THRESH_BINARY,
                                 blockSize=9,
                                 C=2)

#转换回彩色图像
img_edge = cv2.cvtColor(img_edge, cv2.COLOR_GRAY2RGB)

#与运算
dst6 = cv2.bitwise_and(img_color, img_edge)

#--------------------------------均衡化特效-------------------------------------
#新建目标图像
dst7 = np.zeros((rows, cols, 3), dtype="uint8")

#提取三个颜色通道
(b, g, r) = cv2.split(src)

#彩色图像均衡化
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)

#合并通道
dst7 = cv2.merge((bH, gH, rH))

#--------------------------------边缘特效-------------------------------------
#高斯滤波降噪
gaussian = cv2.GaussianBlur(gray, (3,3), 0)
 
#Canny算子
#dst8 = cv2.Canny(gaussian, 50, 150) 

# Scharr算子
x = cv2.Scharr(gaussian, cv2.CV_32F, 1, 0) #X方向
y = cv2.Scharr(gaussian, cv2.CV_32F, 0, 1) #Y方向
absX = cv2.convertScaleAbs(x)       
absY = cv2.convertScaleAbs(y)
dst8 = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)

#-----------------------------------------------------------------------------
#用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']

#循环显示图形
titles = [ '原图', '毛玻璃', '浮雕', '素描', '怀旧', '光照', '卡通', '均衡化', '边缘']  
images = [src, dst1, dst2, dst3, dst4, dst5, dst6, dst7, dst8]  
for i in range(9):  
   plt.subplot(3, 3, i+1), plt.imshow(images[i],'gray')  
   plt.title(titles[i])  
   plt.xticks([]),plt.yticks([])  
plt.show()  

输出结果如下图所示,包括毛玻璃、油漆、素描、怀旧、光照、卡通、均衡化、边缘特效。

在这里插入图片描述


6.绘制属于女神的滤镜和素描特效
素描和滤镜是非常棒的两个效果,我们同样可以用Python代码实现。

在这里插入图片描述

#coding:utf-8
import cv2
import numpy as np
 
def dodgeNaive(image, mask):
    # determine the shape of the input image
    width, height = image.shape[:2]
 
    # prepare output argument with same size as image
    blend = np.zeros((width, height), np.uint8)
 
    for col in range(width):
        for row in range(height):
            # do for every pixel
            if mask[col, row] == 255:
                # avoid division by zero
                blend[col, row] = 255
            else:
                # shift image pixel value by 8 bits
                # divide by the inverse of the mask
                tmp = (image[col, row] << 8) / (255 - mask)
                # print('tmp={}'.format(tmp.shape))
                # make sure resulting value stays within bounds
                if tmp.any() > 255:
                    tmp = 255
                    blend[col, row] = tmp
    return blend
 
def dodgeV2(image, mask):
    return cv2.divide(image, 255 - mask, scale=256)
 
def burnV2(image, mask):
    return 255 - cv2.divide(255 - image, 255 - mask, scale=256)
 
def rgb_to_sketch(src_image_name, dst_image_name):
    img_rgb = cv2.imread(src_image_name)
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    # 读取图片时直接转换操作
    # img_gray = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)
 
    img_gray_inv = 255 - img_gray
    img_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21, 21),
                                sigmaX=0, sigmaY=0)
    img_blend = dodgeV2(img_gray, img_blur)
 
    cv2.imshow('original', img_rgb)
    cv2.imshow('gray', img_gray)
    cv2.imshow('gray_inv', img_gray_inv)
    cv2.imshow('gray_blur', img_blur)
    cv2.imshow("pencil sketch", img_blend)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    cv2.imwrite(dst_image_name, img_blend)
 
if __name__ == '__main__':
    src_image_name = 'nv.png'
    dst_image_name = 'sketch_example.jpg'
    rgb_to_sketch(src_image_name, dst_image_name)

运行结果如下图所示,我们可以根据素描绘制手札,这些年我也为女神画了好几本,哈哈。

在这里插入图片描述

同样,通过下面的滤镜模板我们能让图片的色彩更加饱和。

#coding:utf-8
#By:Eastmount CSDN 2020-12-22
import cv2
import math
import numpy as np

#读取原始图像
img = cv2.imread('nv.png')

#获取图像行和列
rows, cols = img.shape[:2]

#新建目标图像
dst = np.zeros((rows, cols, 3), dtype="uint8")

#图像流年特效
for i in range(rows):
    for j in range(cols):
        #B通道的数值开平方乘以参数12
        B = math.sqrt(img[i,j][0]) * 12
        G =  img[i,j][1]
        R =  img[i,j][2]
        if B>255:
            B = 255
        dst[i,j] = np.uint8((B, G, R))
        
#显示图像
cv2.imshow('src', img)
cv2.imshow('dst', dst)

cv2.waitKey()
cv2.destroyAllWindows()

输出结果如下图所示:

在这里插入图片描述


7.Python将女神图像转换成精彩的txt文字

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 23 12:45:47 2016
@author: yxz15
"""
 
from PIL import Image
import os
 
serarr=['@','#','$','%','&','?','*','o','/','{','[','(','|','!','^','~','-','_',':',';',',','.','`',' ']
count=len(serarr)
 
def toText(image_file):
   image_file=image_file.convert("L")#转灰度
   asd =''#储存字符串
   for h in range(0,  image_file.size[1]):#h
      for w in range(0, image_file.size[0]):#w
         gray =image_file.getpixel((w,h))
         asd=asd+serarr[int(gray/(255/(count-1)))]
      asd=asd+'\r\n'
   return asd
 
def toText2(image_file):
   asd =''#储存字符串
   for h in range(0,  image_file.size[1]):#h
      for w in range(0, image_file.size[0]):#w
         r,g,b =image_file.getpixel((w,h))
         gray =int(r* 0.299+g* 0.587+b* 0.114)
         asd=asd+serarr[int(gray/(255/(count-1)))]
      asd=asd+'\r\n'
   return asd
 
 
image_file = Image.open("nana.jpg") # 打开图片
image_file=image_file.resize((int(image_file.size[0]*0.9), int(image_file.size[1]*0.5)))#调整图片大小
 
print('Info:',image_file.size[0],' ',image_file.size[1],' ',count)

try:
   os.remove('./tmp.txt')
except  WindowsError:
    pass
    
tmp=open('tmp.txt','a')
 
 
tmp.write(toText2(image_file))
 
tmp.close()

输出结果如下图所示,放我的傻照。

在这里插入图片描述


8.利用AI和Word2Vec为女神写诗

基本流程如下:

  • 首先,存在一个“古诗词.txt”数据集,包含了43101首诗,通过该数据集进行训练
  • 接着,读取古诗词数据,通过 ls_of_ls_of_c = [list(line.strip()) for line in f] 代码将古诗词拆分成单个字,每首诗句里面的字都有上下文
  • 然后,调用Word2Vec进行训练,转换成词向量并保存模型
  • 最后,输入标题进行补全,根据标题四个字进行语义查找,计算每个字的相似度,最终形成对应的诗句。核心代码为:
model.predict_output_word(poem[-self.window:], max(self.topn, len(poem) + 1))

在这里插入图片描述

运行结果如下图所示:

在这里插入图片描述

比如输入女神的姓“颜”,输出的五言绝句、七严绝句如下所示,注意“病眉鬓凋跎”在我们的“古诗词.txt”中是找不到的,而是因为“凋”和“娜”存在相似度语义所致。同时,某些文字可能不存在,需要我们丰富文本库。

输入标题:颜
《颜跎悴憔》
病眉鬓凋跎,毛壮衰悴憔。筋齿斑肌霜,茎枯瘦健肤。
《颜跎徂逾》
壮憔跎惨蹉冉岁,凋悴辛质鬓弱衰。霰羸齿改加霜瘦,发病苦劲筋热饥。
《颜跎蹉叹》
叹跎悲哉矣悴壮嗟辛,涕鬓凋衰蹉伤齿血毛。

完整代码如下:

# -*- coding: utf-8 -*-
"""
Created on Mon Dec 23 17:48:50 2019
@author: xiuzhang Eastmount CSDN

博客原地址:https://blog.csdn.net/Yellow_python/article/details/86726619
推荐大家学习Yellow_python大神的文章
"""
from gensim.models import Word2Vec  # 词向量
from random import choice
from os.path import exists

class CONF:
    path = '古诗词.txt'
    window = 16           # 滑窗大小
    min_count = 60        # 过滤低频字
    size = 125            # 词向量维度
    topn = 14             # 生成诗词的开放度
    model_path = 'word2vec'

# 定义模型
class Model:
    def __init__(self, window, topn, model):
        self.window = window
        self.topn = topn
        self.model = model  # 词向量模型
        self.chr_dict = model.wv.index2word  # 字典

    """模型初始化"""
    @classmethod
    def initialize(cls, config):
        if exists(config.model_path):
            # 模型读取
            model = Word2Vec.load(config.model_path)
        else:
            # 语料读取
            with open(config.path, encoding='utf-8') as f:
                ls_of_ls_of_c = [list(line.strip()) for line in f]
            # 模型训练和保存
            model = Word2Vec(sentences=ls_of_ls_of_c, size=config.size, window=config.window, min_count=config.min_count)
            model.save(config.model_path)
        return cls(config.window, config.topn, model)

    """古诗词生成"""
    def poem_generator(self, title, form):
        filter = lambda lst: [t[0] for t in lst if t[0] not in [',', '。']]
        # 标题补全
        if len(title) < 4:
            if not title:
                title += choice(self.chr_dict)
            for _ in range(4 - len(title)):
                similar_chr = self.model.similar_by_word(title[-1], self.topn // 2)
                similar_chr = filter(similar_chr)
                char = choice([c for c in similar_chr if c not in title])
                title += char
                
        # 文本生成
        poem = list(title)
        for i in range(form[0]):
            for _ in range(form[1]):
                predict_chr = self.model.predict_output_word(poem[-self.window:], max(self.topn, len(poem) + 1))
                predict_chr = filter(predict_chr)
                char = choice([c for c in predict_chr if c not in poem[len(title):]])
                poem.append(char)
            poem.append(',' if i % 2 == 0 else '。')
        length = form[0] * (form[1] + 1)
        return '《%s》' % ''.join(poem[:-length]) + '\n' + ''.join(poem[-length:])


def main(config=CONF):
    form = {'五言绝句': (4, 5), '七言绝句': (4, 7), '对联': (2, 9)}
    m = Model.initialize(config)
    while True:
        title = input('输入标题:').strip()
        try:
            poem = m.poem_generator(title, form['五言绝句'])
            print('%s' % poem)  # red
            poem = m.poem_generator(title, form['七言绝句'])
            print('%s' % poem)  # yellow
            poem = m.poem_generator(title, form['对联'])
            print('%s' % poem)  # purple
            print()
        except:
            pass

if __name__ == '__main__':
    main()

PS:该部分参考了Yellow_python大神的博客,推荐人工智能的童鞋去学习他的文章,真心不错。


9.HTML表白代码
除了Python,各种编程语言都能制作精美的表白代码,下面补充HTML5的代码供大家学习。当然,网上开源的也非常多,本文所有代码可以在下面的链接下载。

在这里插入图片描述

普及了程序员表白代码后,下面开始正文,其实我更喜欢绘制各种手札表白。作者非常希望您能阅读下我们的故事,读读、笑笑,感恩前行。如果您已看过,不妨再回顾下。

在这里插入图片描述


​二. 九年之期,紧紧追随

1.初识 · 假如爱有天意

2007年,一个小屁孩以全县状元的中考成绩从小县城考到了省会城市,这是他第一次离家读书,第一次来到了一个大城市。那个穿着石林球鞋,自己剪着狗啃式头发,木然质朴的阳光男孩来到了师大附中,开始了他的奇幻旅途。

2008年,一袭花白色的连衣裙,一双粉色的调皮凉鞋,脸蛋泛着红霞,抱着路遥的《平凡的世界》,善良美丽的小姑娘也缓缓走入了师范大学,成为小屁孩的师姐,开始了她的文学之路。贵阳,一个不是很起眼的城市,甚至还比不了同省的遵义,但是,它似乎有着奇幻的魔力,就这样把两个莫不相干的人聚集在了一起,开始了一段长达九年的追逐,这个故事也即将拉开序幕。

引子 · 真正的缘分都是在天上缔结的
By: 秀璋

也许我们不在附中见面,也不再师大的林间相遇。
隔三年,也会在遵义支教的教室认识,
如果不在遵义的教室认识,你的学生也并未成为我的学生。
隔七年,也一定会在上海、南京、苏州邂逅,
秀璋沿着娜娜的足迹,紧紧跟随,
你在前,我在后,你在奔跑,我在漫步。
如果七年之中,我们都只是擦肩而过,我只能沿着你的足迹不断追寻。
隔了九年,也一定会…在贵阳认识。
总之,你的教书梦我来完成,我的低情商你来弥补。
可是如果那样,我们都已经老了啊!
老了…也很美。
丘比特的这支箭,是奇幻的一箭,
灵魂的伴侣终究还是走在了一起。
果真,再高的情商都抵不过淳朴,再富裕的人生都比不了温馨。
是啊!璋与娜的缘分早已在天上缔结,这便是所谓的命中注定吧!

在这里插入图片描述

九年前,你我的学校仅隔了一条马路,我在路的这边,你在路的对面。仿佛总有这样一个画面,樱花烂漫的季节,师大校园里一群女大学生步履轻盈、谈笑风生,在“介园”里拍着写真,笑容荡漾;园林的走廊上,几个小屁孩穿着高中校服,啃着鸭脖,口水滴答的嬉闹追逐着,其中一个男孩深深地被一个女孩迷住,懵懂的少年还不知道什么是恋爱,不敢要QQ或电话,也不懂什么叫撩妹,只是单纯地想把这个女神牢记于心底,害怕这片记忆像肥皂泡一样在阳光下消失得无影无终。

终究,拍摄完写真的女神转身离去,她还有太多属于大学的美好时光需要去经历;那个男孩也回到了自己高三拼搏的年代,但此时的他深深地着迷于离去的"娜"个女孩,陶醉于她的气质,她的芬芳,哪怕只是一个白色的背影、一个侧脸、一丝微笑,都让少年辗转反侧,相思入骨。他知道,女神终究只属于他心底的那片记忆,他们只是两个互不相识的陌生人,就像两条平行线一样,越走越远,没有交集。


2.支教 · 梦想的转接

2010年,呆萌少年经过高考走进了北京理工大学,软件工程,一个从未接触过电脑的少年,就这样开启了他的帝都Coding之旅。但他知道,有一些东西早已埋藏于心底。因为父母都是高中老师,从小就生活在校园中,孩提之童就梦像着成为一名人民教师,小学的作文就写到 “我并不想当什么科学家或白衣天使,而是想成为一名老师,像父母一样的老师”;到了高二,美术课上的他更是向着全班同学颤抖地说道 “希望以后能回到贵州教书”;大学,周围的所有同学都知道这个少年想当一名老师。似乎他与校园挂上钩之后,就再也拖不了关系,教书育人,桃李满天,从始至终都是他一生的梦想。那么,京城的理工男真的能回来当一名老师吗?程序猿会回来教书吗?Maybe.

在这里插入图片描述

同一年,那个女孩也梦想着成为一名人民教师,师范大学的她本身就有成为教师的优势,中文系更增加了她成为教师的砝码。古代汉语、现代汉语、中国现当代文学、文学概论、西方文学、中国古典文学等等,少女深深地沉醉于她的文学世界。无数个夜晚,少女看着王小波与李银河的来往书信,默默留下了眼泪;多少个清晨,少女抱着路遥的《平凡的世界》,走在那个熟悉的介园瑟瑟发抖,“不惋惜,不呼唤,我也不啼哭…黄金的落叶堆满心间,我已不再是青春少年”;夕阳西下,林间小巷,图书馆里,都能看到这个少女在品读余华、沈从文、川端康成、奥尔罕·帕慕克、大仲马、陈忠实、霍达、东野圭吾等名家的作品,“美在于发现,在于邂逅,是机缘;凌晨四点钟,看到海棠花未眠”。

究竟呆萌的少年与善良的少女能否都成为老师?能否再次偶遇相识呢?故事继续。

“也许你会在将来不爱我,也许你要离开我,但是我永远对你负有责任,就是你的一切苦难就永远是我的。社会的力量是很大的吧?什么排山倒海的力量也止不住两个相爱过的人的互助。我觉得我爱了你了,从此以后,不管什么时候我都不能对你无动于衷。”
——王小波《爱你就像爱生命》

在这里插入图片描述

一壶清茶,饮尽半生沧桑风雨。
几摞书卷,浓缩岁月多少眷恋。
明月又圆,照见窗前人影不眠。
二胡一声,往事历历又是从前。

2011年9月18日,女神来到了遵义一个偏僻的山村顶岗支教,带这里初二、初三学生的语文。大山深处更多的是留守儿童与孤寡老人,少女也第一次踏入社会,经历了从期待、兴奋,到忐忑、害怕,然后累到没有精力去顾虑,坚守以及无奈的离别。

你能想象一个女生第一天到中学报到就看到了这些学生被老师批评鞭打,贫瘠落后的山村吗?你能想象一个青涩的女孩中午吃饭本想把自己碗里的肉夹给身边的孩子,却发现周围的孩子太多肉根本不够,心疼着回到自己的宿舍默默流泪的情形吗?你能想象一个年轻的女老师开始她的第一次家访,对象却都是孤寡老人,而老人们都在劝孩子不要读书,赶快出去打工挣钱的画面吗?还有太多太多,比如一个学生考试走下座位抄试卷,被女神批评后却要打这个老师,还好他们最后成为了很好的朋友,那个小孩在这学期结束后当兵去了,每逢佳节都会祝福他的那个年轻女老师,这份友谊也让人动容。

在这里插入图片描述

多少次深夜无眠,年青的女老师在夜灯下批改作业,只为第二天上课几十双求知的双眼。多少次呕心沥血,清纯的少女因停电洗冷水澡感冒,第二天仍然坚持上课,只为兑现来时给孩子们的诺言。短短的100天,实习女老师挽回了十几个想辍学打工的孩子,教学生们作文、五子棋、音乐,他们建立了深厚的友谊。离开那天,伴随着孩子们的哭泣与不舍,也多了一份忐忑,这段经历给少女心中留下了一道深深的疤痕,无法磨灭。上车的那天,短短的一句话更是道出了她内心的无奈与心碎。“其实我对这个职业一直怀有热情,现在又多了一份责任,但…人生还有太多太多无奈”。

是啊,人生的无奈又一次让这个少女与那个男孩的相遇变得雪上加霜了。下图是女神在山区支教在与学生们下五子棋。

在这里插入图片描述

贵州众美路迢迢,
未负劳心此一遭。
搜得破书三四本,
也堪将去教尔曹。

2014年7月4日,这首诗是少年大学本科毕业离开北京时写的,这个暑假,他选择回贵州家乡支教。冥冥之中似乎有一种指引,把他带到了一个奇妙的地方——遵义,男孩似乎还在寻找着女神的脚步。支教结束之时,他感慨的写了点东西:

多少年后倘若我真的成为一名贵州老师,在夏令营的这片土地上,我用自己的满腔热血洒下了七天的课;多少年后翻阅着那本陈旧的留言本,看着你们娟娟字迹,我总会微微浮动嘴角,悄然一笑。刚走上讲台的我,确实是害怕的,声音沙哑,小腿颤抖。七天时间是短暂的,不能让你们成绩突飞猛进,只能讲述些学习方法做题技巧,以及让你们感受最重要的东西——情谊。尽管无数次的幻想成为一名贵州籍的大学老师,但程序猿的梦想何去何从,谁也不知道?

在这里插入图片描述

是的,我不敢想象如果我真的成为一名IT男,每天过着忙碌的上下班挤地铁的生活,晚上回到房间却独守空房,异地他乡的我会不会默默的在床上哭泣。不!北上广我也有太多的朋友,他们能给我温暖,但梦想呢?老师呢?

这个暑假,我真的被你们所感动,尤其最后一天上台表演为我献花,与我拥抱,与我道别,七夕节祝福我早日找到自己的归宿。谁说短暂的七天不能留下宝贵的经历,谁说短暂的七天不能认识一帮陌生人。谁说程序猿只能默默哭泣!我可以和你们分享我的欢乐与痛苦。再见,且行且珍惜~

遵义支教回家那天,我收到了大学兄弟给我的短信,心灵为之一颤。如下:

很难想象大学四年没有秀璋,我会怎样生活?
你教会我的东西更多,从你身上我看到太多太多我需要秉持的东西。
四年来最让我欣慰的是身边能有你这样的朋友,希望不止四年。
异地他乡的生活依然要坚持做自己,多为自己着想,别让自己太累。哎!
好好珍惜支教给你的一切,贵阳北京什么的,只要还在地球上,总会相见。
——先宇《且教且珍惜》

下图是男孩支教时的场景,毕业T恤是"软件报国",而他的女神又去哪了?

在这里插入图片描述


3.旅行 · 寻觅女神的足迹

2014年春天,参加工作的女神开始了她的江浙沪之行。从烟雨雾濛到风雪交加再到小雨沥沥,从南京路转外滩轮渡到陆家嘴,初来上海的女神感受到了二月的一丝忧伤;“江雨霏霏江草齐,六朝如梦鸟空啼。无情最是台城柳,依旧烟笼十里堤。” 玄武湖岸的城墙、秦淮河畔的小吃、中山陵半坡的眺望、纪念馆里的历史,三月底的南京城让这个小女生感受到了古都的厚重和悲鸣;“落乌啼霜满天,江枫渔火对愁眠。姑苏城外寒山寺,夜半钟声到客船。” 四月的拙政园、苏州园林、太湖风光让少女感受到了灵气姑苏,园林之都的魅力。

在这里插入图片描述

在这里插入图片描述

2014年夏天,支教完后的少年踏上了K1252飘向了魔都上海,开启寻觅女神足迹之旅。某个傍晚,少年倚着外滩的铁链,看着对面插入云霄的东风明珠,听着黄浦江上来往渡轮的轰鸣,略带一丝悲伤,仿佛看到了那个熟悉的背影慢慢消失在了人海;爬中山陵的那天,南京刚下完大雨,梧桐树环绕的古都,大雾弥漫,给人一种想哭的感觉,秦淮河畔留下的依然是男孩追逐的苦涩与女神离去的芬芳;月色流动下的苏州城,行走在金鸡湖畔的少男,没想到一面之缘的女神某个夜晚,也拖掉凉鞋,双脚在水面拍打荡漾着,静静地看着对面的“大裤衩”大楼。

在这里插入图片描述

年深外境犹吾境,
日久他乡即故乡。
独自在贵阳工作四年的女神虽然把贵阳当成了自己的第二个故乡,但依然想回家工作,孤独、寂寞、压力,哎!说不出的苦。而那个少年,虽然他深爱着北京这座城市,但依然牵挂着心中的那个梦想,再见北理工,别了朋友们,他毅然选择了回贵州,成为了一名大学青年教师。

2016年7月1日,少年研究生毕业了,乘上在北理六年时间里的最后一趟开往贵州的列车上 ,我惆怅着仿造写下这样一首诗:

别时道一句珍重,
不去思量,非常难忘。
无人可以诉衷肠,那又何妨?
留一段剪影,于心中回放。
几十年生死,不也两茫茫。

就这样,故事出现了转机,寻觅女神的足迹,似乎有点希望了。


三.她的酒窝没有酒,我却醉得像条狗

1.手机 · 第一次交流

时间:2016年11月19日 晚9点36

女:学长,学长,你有多高?我要给你介绍对象。哈哈~
男:我不着急的,你着啥急啊…
女:你有多高嘛!肥水不留外人田,就是那天和我一起吃饭那个小姐姐,你看到的。
快把你写的诗发给我。
男:172,不要这样,我太感动了。
女:照片看到了吗?怎么样,有没有小鹿砰砰跳。
男:我不敢啊!要崩,而且我情商很低的,又不会聊天了。

[画面] 就这样,小杨老师的世界走进了一位异常优秀的女神,九年的追逐终于有了交汇点,廿五的秀璋第一次动心了,呆萌的他怎么去把娜娜追到手呢?怎么去珍惜她?呵护她呢?第二部分故事就此展开…

半个小时后,少年终于鼓足勇气,申请了她的微信。就这样,一个想了解如此亲民老师的女神,就一蹦一跳的出现到了他的镜头前。一个羞涩呆萌的男生也正是开始了他那段追逐的世界。

一人一生守一城,一城一世拥一人。
男生在这座城市等来了他的女神,他也坚信着想守护着她一辈子。

在这里插入图片描述

两人聊着聊着,找到了很多的共同语言,包括两人的初识,师大学姐与学弟的关系,共同的遵义支教经历,找工作的颠簸与辛酸,写博客的经历到文学编程等等。

“电脑里放着你爱听的音乐,你在看书,我在编程,彼此并不说话,但我能感觉到你就在身边,真好,这便是最长情的等待,最好的爱情了吧!晚安,我的你~”
仿佛这样的画面在未来将会重现,哈哈!

在这里插入图片描述

用尽毕生努力书写才华,
嬉笑怒骂调侃人生寂寞。
你变与不变,秀璋都爱你。
你伤心之时,希望能和秀璋分享;
你急躁之时,骂骂我出口气就好;
你开心之时,也可以告诉秀璋,我陪你一起笑。
总之,
希望秀璋能成为你的灵魂伴侣,
那个能读懂你灵魂,陪你喜怒哀乐一辈子的人。
——《璋 · 爱娜娜宣言》


2.邮局 · 第一次约会

时间:2016年11月20日 星期天傍晚 夕阳西下

男:你在干什么啊?
女:我正在来见你的路上啊,听说花溪大道晚秋的落叶很美。
[画面] 女神兴奋地拍摄了车窗外的风景,并发给了呆男,等待着他的邀请;而此时的小杨老师却非常忐忑,久久不敢回复,“怎么办?怎么办?”,五分钟过去了。

女:害怕吗?哈哈哈,笨蛋。其实我是和闺蜜来看秋天的梧桐落叶了,你看这些照片,是不是很美啊!
男:确实好美啊!我还在办公室加班,哈哈,是挺害怕的,不知道怎么见你。
女:哈哈哈,是不是在瑟瑟发抖啊。
男:真的吓到我了,以为真的要见你了,好害怕啊!
女:哈哈哈。晚上我们在这边吃烤鱼,挺好吃的,要一起来吃吗?
男:哈哈哈,谢谢啦。多吃点,我晚上加班,下次请你们来学校吃嘛!

[画面] 办公室里的杨老师忐忑地与女神聊着天,小白的他不知道什么叫初恋,什么叫撩妹,什么叫约会。而少女心中夹杂着一丝失落,“怎么有这么傻的人啊?”、“如果真见面怎么办呢?”、“这情商也是没有谁了,不过程序猿嘛,可以理解!”。

(深夜 女神回到了自己住处)
男:我这周五要来本部上课,哈哈哈。
女:哇啊!挺好的,好想看小杨老师上课啊。
男:我想周四晚上过来见你一面,你有空吗?
女:好啊,好啊!我们晚上一起吃饭嘛,好期待啊!第一次见面,又好害怕。
男:我可能晚上才到,不能和你吃饭了,哈哈哈!
[画面] 少女看着他的回复,把手机扔到了一遍,心想:“怎么这么傻啊,三番四次拒绝我啊,不知道我是女生吗?这情商,哎!不理他了。”

(五分钟后)
女:喔…
(又过了五分钟)
男:那我周四下午就过来,和你吃个饭,可以吗?哈哈。
女:随便嘛,看你自己,太忙的话,晚上见个面也行的。
男:没事的,我们在哪里见面呢?
女:好的嘛!在邮局那里下车,然后小杨老师想吃什么呢?这里有火锅、有干锅、有牛肉等等…
[画面] 小杨老师只觉心脏跳个不停,当时却没有意识到什么东西马上就要失去。哎!这个笨蛋,如果是在电影或小说中,他真的只能活五分钟,这情商,也是没有sei了。

当天夜晚女神拍摄的照片——灵魂摄影师娜。

在这里插入图片描述

“拦路雨偏似雪花,饮泣的你冻吗?”
这是秀璋当天从郊区赶来市区路上的担忧。一周的时间转瞬即逝,刚下课的小杨老师就坐上了五点半的校车,迫不及待而又忐忑的幻想着两人的初遇。那个傍晚的贵阳最是寒冷,北风中夹杂着细雨,看着车窗外顺流而下的雨滴,回复着手中不时响起的微信。

哎!很难想象一个女生在夜灯下的寒风中等待着,看着一辆辆过往的车辆,不时地低头看看手中震动的手机,担心过来的小杨老师迷失方向。而女神自己,手冷了,就并拢着对着嘴哈一口气;脚冰了,就颤抖着蹬蹬地面。

“你到哪里呢?喔,在邮电局门口等我,我马上跑过来”。
哎!今夜确实冷着她了,这不应该都是男生等的吗?真想拉他出来打一顿。

依稀记得她从马路那边挥着手,微笑着跑向我的场景,好美的画面;
依稀记得两个人故作镇定的聊天,从遵义支教聊到工作面试,她当记者等等;
依稀记得她主动要求去付账,两人争执着买单,最后却是家长请的老师;
依稀记得两人邀约看《你的名字》,却因为领导的一个电话忙去加班而不舍离去。

“我想和老师聊聊天嘛,我送你回去,这边我熟悉,你不喜欢和我聊天吗?”,这句撒娇是那么的可爱,那么的让人刻骨铭心。两人撑着同一把伞缓缓向着学校走去,时不时手臂的碰撞,带起心脏的一次次扑通,幸福又忐忑着走到了校门口。男生默默的往校园里走去,时不时回头看着那个夜灯下的笑脸,女生看着男生消失在了黑暗中的身影,才默默转身离去。两人又立刻拿起了手机,这看起来的轻车熟路,仿佛就是多年未见的恋人一般。

“你是不是对我今天的印象不好?没能陪你看成电影。”
“你是不是觉得我今天好挫啊?刚下课没打扮就赶过来了,而且应该是我送你的。”

在这里插入图片描述

(PS:图1呆男画的,图2女神画的)

哎!连续加班上课的小杨老师,背着个大书包、穿着大棉衣、胡子拉碴、油光发面的,甚至带着粉笔灰,而女神似乎都不在乎,更多的是心疼,看着小杨老师的憔悴面容却又谈笑风生,说不出的滋味。

或许这还谈不上爱,说不上情,但此时此刻他内心还是陶醉的,第一次感受到了除了母亲以外的关心,夫复何求啊!回到住处,深夜备完第二天早上课的杨老师写下了这样一篇日记(部分):

多么呆萌的一个小白啊,
多么善良的一个姑娘啊!
说实话,从初中到高中,我一直都是懵懂的,真的很害怕接触女生。到了大学也是一帮好兄弟,研究生稍微开朗了点,很大程度是在CSDN写博客,无偿帮助了很多陌生人,让我变得敢说话了点,但也害怕和现实中的女生相处,甚至和女同学聊天都会发抖,也是没有谁了。所以真没好好喜欢过谁,更别说动情、甚至追求了。

娜娜,可以说这次是真的动心了,正如虎扑以为JRS所说:
她的酒窝没有酒,
我却醉得像条狗。
或许,我也不想在这篇日记中写下什么誓言,它真的经不过世事无常。但这一瞬间,真的好喜欢她啊!第一次真正想去追求一个人;第一次害怕一个女生觉得我呆萌或不够好;第一次觉得一个人的性格、气质、品行是那么的完美;第一次觉得自己好傻好傻,怎么都不会送送她,最后伞也没给她,吃饭也是她请的,啊啊啊!
或许,你会觉得这些缥缈的文字经不起风吹雨打,但深夜写文的秀璋,从来都是最真实的自己,她也看不到我今夜的日记。加油!秀璋。希望你能行,能追到你的女神,九年之期,又算得了什么。

小杨老师是幸运的,
很多人穷极一生、散财无数也找不到一个能真心相爱的,
更别提会为你牺牲、懂你内心的姑娘。
一个人只拥有此生此世那肯定是远远不够的,
他还应该拥有一个诗意的世界,
对秀璋来说,
娜娜就是他教书写文之外的另一个诗意的世界。
——《璋 · 爱你的第24天》

我决定原谅你这擅自主张默不作声的想念,
因为正好,
我也在思念你。
——《娜 · 爱你的第24天》


四.只愿君心似我心,定不负卿相思意

1.惊喜 · 生日祝福的感动

已经记不清这是多少年前的事了,只记得在外读书的我,在每年的农历冬月初一这天,都会接到母亲的一个电话,祝我生日快乐,让我这天吃好点,穿暖点。

同样,今年我也收到了很多的祝福,有朋友的、学生的、亲人的、陌生人的,包括学生各种各样的红包,那几句“你值得我们去拥护”,“相见即是有缘”,“璋妈或小杨老师保重身体”,“秀璋欧巴生日快乐”,真的好谢谢你们啊,教师这条路真的好美,好美,再多坎坷都坚持走下去吧。

在这里插入图片描述

但最让秀璋感动的是女神的那句:
农历冬月初一,
我记住了,秀璋,
以后除了你妈妈,有另一个人也会记得的。

哎!感觉泪水已浸湿了眼眶,自己的人生如此幸福,此生足矣,何惧怪哉。谢谢女神,这句话我会记住一辈子的,还有那深夜12点的生日歌,第一次有女生给我唱歌。今生今世,有那么一瞬间,我被感动得不行啦。"闲看庭前花开花落,漫随天外云卷云舒"可能我现在还做不到,但是现在给你带来快乐,伴你一生我还是能做到的~
只愿君心似我心,定不负相思意。

在这里插入图片描述

2016年12月4日,星期天,女神主动过来陪秀璋过生日。
很难想象一个女生清早起来打扮,穿上最喜欢的粉红大衣,对着镜子娇艳一笑;
很难想象一个女生提着一个大蛋糕,挤了2个多小时的公交,默默地站在角落里;
很难想象一个女生来给小杨老师过生日,他却周日加班到旁晚,饥饿的女孩买了一个肉夹馍,肉还全撒了;
很难想象一个女生看到熟悉的身影,小巧的唇瓣轻轻绽开,夕阳下的笑容最是灿烂;
很难想象一个女生给呆萌老师唱完生日歌后,给了他一支钢笔,望其桃李满天;
很难想象一个少女白皙的手腕上绑了个蝴蝶结,梦想了一天,两人漫步在湖畔;
很难想象一个少女…
"啊!真的吗?"后面的剧情比韩剧还狗血,男主活不过5分钟的!就该。
只记得回来时的秀璋,一直傻笑着,嘴巴似乎永远也合不拢。哎!笨蛋。

在这里插入图片描述

是的,秀璋以前也不相信一见钟情,但直到遇见了女神,就那么一瞬间就知道什么是需要我去争取与珍惜一辈子的,我可不希望自己变成大话西游里的孙悟空,为了大义放弃爱情,最终舍去。
情人别后永远再不回,
无言落寞放眼尘世岸。
鲜花虽会凋谢,但会再开。
一生所爱忍让,在白云外。

我不会忍让,我只争朝夕。这期间发生的故事,感觉自己真的好傻,好呆萌,但又比童话还美还真实,谢谢娜娜的宽容,同时每个故事都是美妙的音符,都在演绎我与你的人生。

的确,一个人只拥有此生此世那肯定是远远不够的,他还应该拥有一个诗一样的世界,对我来说,娜娜就是我编程教学工作之外的那个诗一样的世界,每每相遇闲聊都能让我浮动嘴角,蓦然心跳,或许这就是恋爱吧!但回头想想,人生何尝又不是不期而遇的幸福与突如其来的一些小小磨难组成的呢?你的勇气和我的勇气足够应付整个世界,更何况应付接下来所谓的小小磨难,只要你在,秀璋永远为你存在,这就是你最喜欢的《平凡的世界》吧!
晚安,贵阳。晚安,娜娜~

在这里插入图片描述

补充一句:
曾经女神的很多朋友问过我一个问题:“你是怎么追到我们的女神的呢?求教。”
而我想了想,只能回答:“我就运气比较好啦!”
Right?Maybe.
细细回想,太多巧合和共同点,我一直都认为,秀璋某种程度就是另一个娜娜!为什么呢?共同的教师梦,遵义相似的支教经历,对自己喜欢的事情能付出一切,专注地做自己喜欢的事情,无私地帮助周围人。两人冥冥之中似乎早已有了交集,她妹妹(我学生)的出现更是让这两条平行线汇聚的交点~

是的!真的很奇妙,娜娜从来不相信缘分这个东西,秀璋也从来不相信一见钟情,但莫名其妙的两个人就相互走进了对方的生活,娜娜说秀璋是她的小确幸,秀璋却说娜娜是读懂他灵魂深处的女神。

《娜璋·小确幸篇》
一辈子的承诺太美,美到我甚至不敢去轻信,
怕有一天会失去,太残忍~
所以我只跟秀璋说"只争朝夕"。
一句"早安",
一顿晚餐。
一个下班后的等待,
一次郁闷时的关爱。
一个宁愿蹲在地上为她的男神系鞋带,
一个毫不隐瞒地向世界宣布他的女伴。
说不上执子之手与子偕老,
惟心之永随是一生的执着。


2.约定 · 专属女神的笔记

故事写到这里,如果男主还不主动做些什么?真的可以完结了。
其实你们并不知道,从第一次见面后,男主就想着如何获取女神的芳心。为了能和她聊天,他翻遍了她的朋友圈,并根据每次的话题做了满满一本的笔记,记录了点点滴滴。

在这里插入图片描述

这本笔记包括了女神聊天的各种动态gif图片,小杨老师用他那并不擅长,甚至是鬼畜的画风完成了整本笔记,笔记中穿插着女神的照片、女神的故事以及他对女神的告白。下图是笔记的第一幅图,哈哈!

  • “好气喔,但是要保持乖巧”。
  • “你的小祖宗要买新衣服”。

在这里插入图片描述

曾记否,这是女神给秀璋过生日的第二天,也就是星期二。秀璋主动申请了那边周三的实验课,布置好了周二晚上主动给学生分享的编程实验后,他匆忙地朝市区赶去。深夜十二点的他,还在找打印店,整理女神的照片,半夜完善了整本笔记,准备给女神的礼物。

在这里插入图片描述

那夜,路灯下的一把摇椅上,两人肩并肩的坐着,谈着熟悉的话题,似乎快到分离的时间了,男生颤抖地把书包里的笔记拿了出来,递给了他深爱的女神,女神看看里面的内容,眼泪止不住的就掉了下来。

《娜璋·夜灯赠书篇》
女:你为什么对我这么好?
男:对不起啊,最近有的时候来不急回复你信息,工作忙再加上写这本笔记。
女:嗯嗯,谢谢!对人家这么好干什么吗?我以为你会给我初中你的笔记看,谁知道你抄了一本笔记给我。
男:没有啊!你对我也很好嘛,这么远还来陪我过生日。而且我答应给你一本笔记了嘛,秀璋出版的第一本书送给你。
女:谢谢秀璋老师。
男:我可不可以追你啊?
女:笨蛋!那天生日,晚上给你礼物让你牵手,就是答应了嘛,真是傻瓜。
[画面] 女神盯着男生,眼睛中包含着泪光,秀璋却有些害羞,呆呆萌萌的,感觉还活在梦里一样。“你居然还躲我!” 哎…

在这里插入图片描述

当然还有那鬼畜的画风。哎!娜娜这是真爱啊,这样都能忍,不知道她想什么呢?这哈儿,这画风,这呆萌,换个人,早一脚把他脑袋踢飞。哈哈哈~

在这里插入图片描述


3.邂逅 · 只要香榭的落叶

“你说你有点难追,想让我知难而退。
礼物不需要最贵,只要香榭的落叶。”
这期间,秀璋与他的女神去了金阳各种地方,看到各种各样的落叶,不论天晴还是下雨,不论白天还是傍晚,只要两人相随,就很美。

在这里插入图片描述

有这么一个姑娘,大老远从花溪赶公交过来,陪他过生日;
有这么一个姑娘,在夜灯下展示左手的蝴蝶结,“傻瓜,我想握紧你啊!”;
有这么一个姑娘,依偎在他的怀抱,眼含泪珠,谈论着趣事;
还有这么一个姑娘,精心给那个少年挑选新衣,梳妆打扮,说不出的感动;
哎!这个姑娘为了一个少年,替他擦眼镜上的雾珠,替他系鞋带,担心他加班;
总之,一切的一切,这个姑娘都是为这个少年着想。
而这个少年,却不懂浪漫,每次赶过来见面都很匆忙,都很憔悴,
从未给这个姑娘送花,买过巧克力,准备过小礼物。
哎!一句对不起是不够的。
他是多么的幸运啊,才能遇到这么一个懂他、爱他 、呵护他的女神。

在这里插入图片描述


五.只属于我俩的浪漫与告白

1.做饭 · 最浪漫的晚餐

人为什么活着?为了那个每天给你做饭两鬓斑白的老人,为了那个抱怨着把你的脏衣服扔进洗衣机的姑娘,为了儿子喝完牛奶离家前亲你一口说声爸爸再见。

有时候一顿晚餐满足的不仅仅是胃,满足的更是一颗心。
小杨老师从花溪下班赶两个小时公交车过来陪你,你却下班后拖着疲惫的身躯,独自买菜做饭等我。哎,工作再苦再累,热饭过后,疲倦终究会散去,再美的人生也不过如此,再漂亮贤惠的女生也仅此罢了,感谢上苍娜的眷顾,我就说嘛好人会有好报嘛!

在这里插入图片描述

回想两一起去超市买火锅底料,买海鲜鸡翅,买水果饮料,然后一起做饭,画面真的很美。哎!作为男生的我,其实应该做些更浪漫的事。九年的追逐,相比一个城市的兴衰流转,显得异常短暂,但是对一个人来说,却足以酝酿出浓厚的爱情。

寒假到来的秀璋,回味着儿时的记忆,主动为自己的女神制作啤酒鸭。这个一边看着电脑,一边做饭的画面,真是没有谁了。还是不是的向自己的学生、同事进行询问,这专注程度直追刘昂娜啊!

  • 《中华小当家》的小当家翻译为刘昂星,然后娜娜手艺一绝,外号刘昂娜。

在这里插入图片描述

《娜璋·何德何能篇》
其实啊!
有时候晚上你睡着后,就会很想很想你,
你我的种种故事都会像幻灯片一样闪过,
有时候想着想着就笑了,笑着笑着就流泪了,
这可能就是所谓的:爱到深处了吧!

流泪的同时,更觉得你独自在外的不易,
两人追逐了这么多年,漂泊了这么多年,等待了这么多年,
内心突然就安定下来了。
夜里的我仿佛能感受到你的一呼一吸,仿佛能亲吻到你的额头,
好想怀抱着你,让你踏实的睡去。

尤其是每次在中大路口等待你下班,
站成望夫石的秀璋,在一个个出现的人群中寻找娜娜的身影,
当看到你出现的时候,心灵总会一颤,
但又有些害羞,仿佛每次等待都是一次刻骨铭心的初恋。
哎!秀璋何德何能让一个女神这么爱他,关心他,呵护他,甚至保护他。
仿佛这么多年做的好事帮助的人,都是为了换取此时此刻的你,
仿佛这么多年的坚守都是值得的。

同时,不管在外面多么的坚强,在事业上多么的用心,社会上多么的有爱,
但在娜娜的怀抱里,秀璋只想当那个呆萌的、甚至傻傻的宝宝。
爱你,并不是仅仅因为你的颜值和气质,
更多的是理解和灵魂深处的那种懂,那种默契,
那种我说不出你却知道的感觉,
不管秀璋本人多么平庸,
我总觉得对你的爱很美。


2.陪伴 · 最长情的告白

Love you once,
Love you twice,
Love you more than beans and rice.
一见倾心,再见倾情,我爱你,此生不渝。

May there be enough clouds in your life to make a beatuiful sunset!
愿你生命中有足够的云翳来酿造一个美丽的黄昏,
希望我能成为那片云彩!

在这里插入图片描述

最长情的告白就是慢慢陪你变老~
有美在兮,见之不忘,一日不见,思之如狂。
还有更多的生活中的故事没有抒写,而这些小故事往往都能带来幸福,当然更多的故事将由我和她去谱写,也希望每位朋友和博友能抒写自己的人生,祝好!

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


六.结尾

彩蛋1:来自娜娜的强势补充
2016年,秀璋老师生日那天,娜小妞一大早起来梳洗打扮,买好了爱吃的黄桃蛋糕,用漂亮的包装纸把礼物包好,一心想着给某人一个大惊喜~中间各种转车打不到车挤公车用血肉之躯护住蛋糕啥的壮举就不削说了,反正你加班你有理咯。其实早就到学校的她,为了不打扰加班狂魔杨老师,悄悄的自己逛了校园,并在校门口找了一家漂亮的小店把蛋糕和礼物都藏了起来(天知道大学城的马路旁除了饭馆真的几乎啥都没有),哈哈,一个机智的Girl~

傍晚,夕阳西下断肠人也回家了,辛劳的杨教授终于步出办公室。饭毕,按原计划娜妹纸貌不经意地带着杨老师来到那家小店,如你们所想,蛋糕、蜡烛、礼物,突然冒出来的惊喜把杨老师乐坏了~可机智娜的精心准备怎会这么轻易让你们猜透?天色渐晚,杨老师决定带她在校园里转一圈,财大美丽的鼎新湖畔,长廊安静清幽,两个人并肩走着,脚步踢踏踢踏,仿佛回到了学生时代~秀璋老师一路眉飞色舞介绍着学校的美景,看得出来,他完全沉静在了对自己学校的热爱与对美景的欣赏中,而另一个人则心不在焉小鹿乱撞……

绕了一圈又一圈,勇气鼓了一遍又一遍,脚也酸了汗也出了,娜娜终于开口了,“喂,我还有一份礼物要送给你,但不知道你想不想要,敢不敢要啊?”“好啊,什么礼物啊”,这时娜娜突然伸出了自己的左手,手腕上绑着早就悄悄系上的粉色蝴蝶结丝带,没错,娜娜想送的礼物正是她自己!此刻秀璋老师回过头,深情的看着她,(韩剧背景音乐响起),杨老师伸出了他温暖的手掌…………NONONO!打住!以杨教授的高冷和呆萌,画风怎么可能是少女心韩剧风,真实的情况是:娜娜突然伸出了自己的左手,手腕上绑着早就悄悄系上的粉色蝴蝶结,“喏,这就是我要送你的礼物”,杨老师愣了一下,一脸严肃认真,思考片刻抬起头来问道“啊,什么啊?什么礼物啊?你要给我啥?”…………后面的故事你们自己去想吧,大概就是娜娜一口老血吐出来,映红了整个鼎新湖~~~

在这里插入图片描述


彩蛋2:何以为珈
2019年秀璋去到武大读博,两人的故事又将何去何从?

在这里插入图片描述

在这里插入图片描述

一篇文章,两个主角,几片故事,呆萌人生。
人间如花丛,惟愿从"娜"片花丛中采撷一点点精华,
用简单的文字抒写属于我俩的美丽国度,仅以此篇献给我的娜。
最后一个故事:陪你到老~不求浪漫惊天动地,只求平平淡淡濡沫,爱你一切。
祝娜娜生日快乐~

(By:娜璋 2021-02-06 夜于贵阳 https://blog.csdn.net/eastmount)


<p> </p> <p class="15"><span style="font-family: 微软雅黑; font-size: 11.0000pt;"><span style="color: #e53333; font-size: 14px;"><span style="font-family: 微软雅黑; font-size: 11.0000pt;">Spring全家桶主要以案例进行讲解,通过案例讲解各种技术如何使用,使得可以在短时间内快速对Spring全家桶有所了解,并可以初步使用其进行开发。而对于更加深入的Spring Security等技术将在Spring提高课程中进行介绍。</span></span></span></p> <p class="15"><span style="font-family: 微软雅黑; font-size: 11.0000pt;"><span style="color: #e53333; font-size: 14px;"><span style="font-family: 微软雅黑; font-size: 11.0000pt;">并且</span></span></span><span style="font-family: 微软雅黑; font-size: 11.0000pt;"><span style="color: #e53333; font-size: 14px;"><span style="font-family: 微软雅黑; font-size: 11.0000pt;">在Spring MVC及Spring Boot的最后部分都是从前端页面、到逻辑层、到持久层的整体的产品的增删改查的实战案例。</span></span></span></p> <p> </p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;">【通过Spring全家桶,我们保证你能收获到以下几点】</span></span></p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;"> </span></span></p> <p class="MsoNormal">1、掌握Spring全家桶主要部分的开发、实现</p> <p class="MsoNormal">2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发</p> <p class="MsoNormal">3、初步了解使用微服务、了解使用Spring进行微服务的设计实现</p> <p>4、奠定扎实的Spring技术,具备了定的独立开发的能力 <span style="color: #e53333; font-size: 14px;"><span style="color: #000000;"><br /></span></span></p> <p> </p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;">【实力讲师】</span></span></p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;"> </span></span></p> <p class="MsoNormal">毕业于<strong><span style="color: #e53333;">清华大学软件学院软件工程专业</span></strong>,曾在Accenture、IBM等知名外企任管理及架构职位,<span style="color: #e53333;">近</span><span style="color: #e53333;">15</span><span style="color: #e53333;">年的</span><span style="color: #e53333;">JavaEE</span><span style="color: #e53333;">经验</span>,近8年的Spring经验,直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验</p> <p> </p> <p> </p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;"><span style="color: #000000;">【本课程适用人群】</span><strong><span style="color: #000000;">如果你是定不要错过!</span></strong></span></span></p> <p class="ql-long-24357476"><span style="color: #e53333; font-size: 14px;"><span style="color: #000000;"> </span></span></p> <p class="15"> </p> <ul> <li>适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者</li> <li>没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。</li> </ul> <p> </p> <p>【本课程共包含如下几门】</p> <p>1. <span style="color: #222226; font-size: 16px; white-space: nowrap;">轻松搞定Spring全家桶(初识篇)</span></p> <p>2. <span style="color: #222226; font-size: 16px; white-space: nowrap;">基础篇:Spring MVC快速开发</span></p> <p><span style="color: #222226; font-size: 16px; white-space: nowrap;">3. </span><span style="color: #222226; font-size: 16px; white-space: nowrap;">核心篇:SpringBoot快速入门</span></p> <p><span style="color: #222226; font-size: 16px; white-space: nowrap;">4. </span><span style="color: #222226; font-size: 16px; white-space: nowrap;">核心篇:深入浅出SpringCloud</span></p> <p><span style="color: #222226; font-size: 16px; white-space: nowrap;">5. </span><span style="color: #222226; font-size: 16px; white-space: nowrap;">进阶篇:SpringData</span></p> <p> </p>
评论 107 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值