Python恋爱小助手之必拿下
目录
- 导语
- Ps——小故事
- 正文
- 一、Part 1 表白篇—界面化表白小程序
- 1)环境安装
- 2)素材自备
- 3)正式敲代码
- 4)效果图
- 二、Part 2 表白篇—字符画表白小程序
- 1)环境安装
- 2)素材自备
- 3) 正式敲代码
- 4)效果图
- 总结
导语
害!现在是10月份了,国庆过完也降温了——还有几个月就过年了,哦吼~
这一年就快过去了,不知道小编带给大家这么多的表白代码都用了没?用了没吖?如果没用的话小编会继续助攻!
不知道各位单身人士,有没有人从单身dog进化为秀恩爱dog撒~
Ps——小故事
在我大四的时候,就有一个计算机的朋友用自己做的代码感动了一个数学系的女生。
就是下面这种。(这个爱心是词云图制作而成的!)也不知道为什么妹子放弃了全班40多位帅哥(没错,他们班就她一
个女生),而选择了头发日渐稀疏已经“六月怀胎”的我——朋友。
今天,我就来教大家一下,如何用Python做二份特别的礼物送给自己的恋人。
当然了,如果还是单身的,也可以把这个作为表白神器,跟心爱的人表白。
懂编程的就看下面的吧!送上这份礼物之后,保证你明晚.....巫山云雨后,天气晚来秋啊!嘿嘿嘿嘿~
正文
你是不是喜欢我?好巧,我也是吖~
一、Part 1 表白篇—界面化表白小程序
1)环境安装
本文是基于Tkinter的界面化小程序,准备好相应的安装环境素材如下:
Python3、Pycharm、Pygame模块以及一些自带的就不说啦!
统一安装模块命令:pip install -i https://pypi.douban.com/simple/ +模块名
2)素材自备
这边小编准备的部分图片如下:
一些背景音乐、字体当然也要准备好滴哈:
3)正式敲代码
3.1 先介绍下代码部分单词的作用
Function: 按钮类 Initial Args: --x, y: 按钮左上角坐标 --width, height: 按钮宽高 --text: 按钮显示的文字 --fontpath: 字体路径 --fontsize: 字体大小 --fontcolor: 字体颜色 --bgcolors: 按钮背景颜色 --is_want_to_be_selected: 按钮是否想被玩家选中 --screensize: 软件屏幕大小 '''
3.2 配置一些界面窗口的小设置
# 窗口大小(width, height) SCREENSIZE = (500, 260) # 定义一些颜色 RED = (255, 0, 0) BLACK = (0, 0, 0) AZURE = (240, 255, 255) WHITE = (255, 255, 255) MISTYROSE = (255, 228, 225) PALETURQUOISE = (175, 238, 238) PAPAYAWHIP = (255, 239, 213) LIGHTGRAY = (211, 211, 211) GAINSBORO = (230, 230, 230) WHITESMOKE = (245, 245, 245) DARKGRAY = (169, 169, 169) BLUE = (0, 0, 255) DEEPSKYBLUE = (0, 191, 255) SKYBLUE = (135, 206, 235) LIGHTSKYBLUE = (135, 206, 250) # 背景音乐路径 BGM_PATH = os.path.join(os.getcwd(), 'resources/music/bgm.mp3') # 字体路径 FONT_PATH = os.path.join(os.getcwd(), 'resources/font/STXINGKA.TTF') # 背景图片路径 BG_IMAGE_PATH = os.path.join(os.getcwd(), 'resources/images/01.jpg') # ICON路径 ICON_IMAGE_PATH = os.path.join(os.getcwd(), 'resources/images/icon.png')
3.3 主函数
def main(): # 初始化 pygame.init() screen = pygame.display.set_mode(cfg.SCREENSIZE, 0, 32) pygame.display.set_icon(pygame.image.load(cfg.ICON_IMAGE_PATH)) pygame.display.set_caption('你知道嘛?') # 背景音乐 pygame.mixer.music.load(cfg.BGM_PATH) pygame.mixer.music.play(-1, 30.0) # biu爱心那个背景图片 bg_image = pygame.image.load(cfg.BG_IMAGE_PATH) bg_image = pygame.transform.smoothscale(bg_image, (150, 150)) # 实例化两个按钮 button_yes = Button(x=20, y=cfg.SCREENSIZE[1]-70, width=120, height=35, text='愿意', fontpath=cfg.FONT_PATH, fontsize=15, fontcolor=cfg.BLACK, edgecolor=cfg.SKYBLUE, edgesize=2, bgcolors=[cfg.DARKGRAY, cfg.GAINSBORO], is_want_to_be_selected=True, screensize=cfg.SCREENSIZE) button_no = Button(x=cfg.SCREENSIZE[0]-140, y=cfg.SCREENSIZE[1]-70, width=120, height=35, text='不愿意', fontpath=cfg.FONT_PATH, fontsize=15, fontcolor=cfg.BLACK, edgecolor=cfg.DARKGRAY, edgesize=1, bgcolors=[cfg.DARKGRAY, cfg.GAINSBORO], is_want_to_be_selected=False, screensize=cfg.SCREENSIZE) # 是否点击了好呀按钮 is_agree = False # 主循环 clock = pygame.time.Clock() while True: # --背景图片 screen.fill(cfg.WHITE) screen.blit(bg_image, (cfg.SCREENSIZE[0]-bg_image.get_height(), 0)) # --鼠标事件捕获 for event in pygame.event.get(): if event.type == pygame.QUIT: # ----没有点击好呀按钮之前不许退出程序 if is_agree: pygame.quit() sys.exit() elif event.type == pygame.MOUSEBUTTONDOWN and event.button: if button_yes.rect.collidepoint(pygame.mouse.get_pos()): button_yes.is_selected = True root = Tk() root.withdraw() messagebox.showinfo('', '永远爱你') root.destroy() is_agree = True # --显示文字 showText(screen=screen, text='自从我们相遇的那一刻,', position=(40, 50), fontpath=cfg.FONT_PATH, fontsize=25, fontcolor=cfg.BLACK, is_bold=False) showText(screen=screen, text='你是我白天黑夜不落的星!', position=(40, 100), fontpath=cfg.FONT_PATH, fontsize=25, fontcolor=cfg.BLACK, is_bold=True) # --显示按钮 button_yes.draw(screen, pygame.mouse.get_pos()) button_no.draw(screen, pygame.mouse.get_pos()) # --刷新 pygame.display.update() clock.tick(60)
4)效果图
运行代码之后——背景音乐一上来就有那个味儿了~嘿嘿 超浪漫,界面也很好看的吖——想要什么字体、界面可以自己设置修改优化的!
4.1 自从我们相遇的那一刻,你是我白天黑夜不落的星。 ——莱蒙托夫《乌黑的眼睛》
4.2 我会不爱你吗?不爱你?不会,爱你就像爱生命。——王小波
4.3 情侣超甜——甜度爆表啊!哈哈哈啊
二、Part 2 表白篇—字符画表白小程序
1)环境安装
相应的安装环境素材如下:
Python3、Pycharm、Pillow模块以及一些自带的就不说啦!
统一安装模块命令:pip install -i https://pypi.douban.com/simple/ +模块名
2)素材自备
这边小编准备的部分图片如下:
3) 正式敲代码
3.1主要代码
#-*- coding=utf-8 -*- from PIL import Image IMG = '02.jpg' #设置图片文件 WIDTH = 150 #设置字符画的宽 HEIGHT = 80 #设置字符画的高 OUTPUT = 'ym.txt' #设置存放字符画的文本文件 ascii_char = list("我喜欢你") #设置显示的字符集 #将256灰度映射到70个字符上 def get_char(r,g,b,alpha = 256): #alpha为透明度 # 判断 alpha 值,为0表示全透明 if alpha == 0: return ' ' # 获取字符集的长度,这里为 70 length = len(ascii_char) # 将 RGB 值转为灰度值 gray,灰度值范围为 0-255 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) # 灰度值范围为 0-255,而字符集只有 70 # 需要进行如下处理才能将灰度值映射到指定的字符上 #防止当灰度值为255时,输出的第70个字符超出列表索引,所以需要将(255+1) unit = (255.0 + 1)/length # 返回灰度值对应的字符 return ascii_char[int(gray/unit)] if __name__ == '__main__': # 打开并调整图片的宽和高 im = Image.open(IMG) im = im.resize((WIDTH,HEIGHT), Image.NEAREST) # 初始化输出的字符串 txt = "" # 遍历图片中的每一行 for i in range(HEIGHT): # 遍历该行中的每一列 for j in range(WIDTH): # 将 (j,i) 坐标的 RGB 像素转为字符后添加到 txt 字符串 txt += get_char(*im.getpixel((j,i))) # 遍历完一行后需要增加换行符 txt += '\n' # 输出到屏幕 print(txt) with open(OUTPUT,'w') as f: f.write(txt)
4)效果图
4.1 图跟文字选的不好,所以效果有点儿社会性死亡了!哈哈哈~尴尬的笑笑缓解一下,不要是去表白的结果变成分手了哈!
4.2 这张图选择我估计看不出来是个人了!所以说——选择图片跟文字是有技巧的,只是我比较懒!
总结
“余生很长,想和你没完没了”——所以看到这里的小伙伴儿记得收藏哦!哈哈哈
好啦 !这二款表白的代码就写到这里了哈,是不是今天又学到了一招会撩妹纸撩汉子的小技巧。赶快自己去试试吧~
你们的支持是我最大的动力!!mua 欢迎大家阅读往期的文章哦~
到此这篇关于Python恋爱小助手之必拿下的文章就介绍到这了,更多相关Python 恋爱小程序内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!
【文章出处:香港服务器】