基于Python实现的恋爱对话小程序详解

目录
  • 导语
  • 一、小简介
  • 二、代码演示
    • 1)导入模块
    • 2)倒计时
    • 3)画2份不同的礼物
    • 4)二种选择是不同的绘图倒计时之后就是绘制你回答的那个礼物。
    • 5)弹窗设计的文字(可修改)
  • 三、效果展示
    • 1)视频展示
    • 2)截图展示

导语

哈喽!大家好~我是木木子啦!自从写了一些表白类型的一些小脚本、小程序之后,越发不可收拾了,哈哈哈。

常常会有小粉丝说:这......小程序不够啊!刚表白去了,但是被拉黑了。

那我不答应了,我得努努力:多多益善给大家开发一些更有趣的各种各样的适合表白的小程序!

让每个人都争取过年带着对象回家过年~嘿嘿嘿

今天,木木子推荐一个定制表白恋爱的项目:恋爱对话小程序

这个简单的项目,居然还蛮有趣的——如何操作?快来了解下。

一、小简介

turtle:绘图模块

PySimpleGUI:弹框制作模块(一个非常简单好用的Python图形界面库(PysimpleGUI))

1)环境安装

本文所用到的环境:Python3、Pycharm、PySimpleGUI、Turtle、time模块。

环境安装:pip install +模块名 或带豆瓣镜像源pip install -i

https://pypi.douban.com/simple/ +模块名

二、代码演示

1)导入模块

from turtle import *
import time
import PySimpleGUI as sg

2)倒计时

def draw_count_down(i):        #倒数
    bgcolor('black')
    speed(0)
    up()
    goto(-50,-100)
    color('white')
    write(i, align="center",font=('Times New Roman', 200, 'bold'))
    time.sleep(1)

3)画2份不同的礼物

def draw_people():    #画小人
    up()
    fillcolor()
    begin_fill()
    color('black','white')
    goto(-300, 50)  # 脖子坐标
    down()
    circle(75)  # 半径为75的脑袋
    end_fill()
    right(90)
    forward(175)  # 身体的长度175像素
    right(45)
    forward(100)  # 腿长100像素
    up()
    goto(-300, -120)  # 画另一条腿
    down()
    left(90)
    forward(100)
    up()
    goto(-300, -5)  # 手臂坐标
    down()
    left(45)
    forward(100)  # 第一只手臂长度
    left(45)
    forward(67)  # 手掌长度
    up()
    goto(-300, -40)  # 第二只手臂坐标
    down()
    right(45)
    forward(100)  # 第二只手臂长度
    right(45)
    forward(67)
    up()
    goto(-330, 155)  # 第一只眼睛起始坐标
    down()
    right(45)
    forward(50)  # 眼睛长度为50
    up()
    goto(-270, 155)  # 第二只眼睛起始坐标
    down()
    forward(50)
    up()
    pencolor('#F39F79')
    goto(-340,100) #红脸蛋第一只眼
    seth(0)
    down()
    backward(40)
    up()
    goto(-260, 100)  # 红脸蛋第二只眼
    down()
    forward(40)
    time.sleep(1)

def draw_heart(size):            # 画爱心
    color('red', 'red')
    down()
    setheading(150)
    begin_fill()
    forward(size)
    circle(size * -3.745, 45)
    circle(size * -1.431, 165)
    left(120)
    circle(size * -1.431, 165)
    circle(size * -3.745, 45)
    forward(size)
    end_fill()

def send_heart():                  #发射爱心
    up()
    goto(-50, -22)
    draw_heart(14)
    up()
    goto(120, -22)
    draw_heart(25)
    penup()
    goto(305, -22)
    draw_heart(43)

def wr_character():
    up()
    goto(-50,-200)
    pencolor('black')
    write('惊', font=('行楷', 60, 'bold'))
    up()
    goto(50,-200)
    write('不', font=('行楷', 60, 'bold'))
    up()
    goto(150,-200)
    write('惊', font=('行楷', 60, 'bold'))
    up()
    goto(250,-200)
    write('喜', font=('行楷', 60, 'bold'))

def draw_pupu():       #画xxxx
    up()
    shapesize(10, 2)
    speed(2)
    fillcolor()
    color('#805140','#805140')
    begin_fill()
    goto(-50, -20)
    down()
    circle(20)
    end_fill()
    begin_fill()
    up()
    goto(-50, -80)
    down()
    circle(40)
    end_fill()
    begin_fill()
    up()
    goto(10, -110)
    seth(90)
    down()
    circle(60,180)
    seth(0)
    forward(120)
    end_fill()

4)二种选择是不同的绘图倒计时之后就是绘制你回答的那个礼物。

def present_good():        #选择是送的礼物
    setup(1000,700)
    pensize(10)
    hideturtle()

    numbers=[5,4,3,2,1]      #进行倒数
    for i in numbers:
        draw_count_down(i)
        undo()
    draw_moon()
    draw_people()
    send_heart()
    wr_character()
    done()

def present_bad():     #选择不是送的礼物
    setup(1000, 700)
    pensize(10)
    hideturtle()
    numbers=[5,4,3,2,1]      #进行倒数
    for i in numbers:
        draw_count_down(i)
        undo()
    draw_moon()
    draw_people()
    draw_pupu()
    wr_character()
    done()

5)弹窗设计的文字(可修改)

layout=[                                    #弹框内容设计
    [sg.Text('请输入你的名字:')],[sg.Input()],
    [sg.Text('请回答下面这个问题哦!')],
    [sg.Text('我是你喜欢的类型嘛?')],
    [sg.Button('是的是的')],[sg.Button('不是')]
]

sg.popup('你好呀!我是你的好朋友为你定制的专属男朋友','请按OK键继续') #这是一个简易弹框
time.sleep(1)
window=sg.Window('小可爱',layout)
event,value=window.read()
window.close()
if event == '是的是的':
    sg.popup(f'{value[0]}请按OK键接收男朋友的礼物!')   #这是一个简易弹框  #这里的value[0],是因为value返回内容为字典
    time.sleep(1)
    present_good()
else:
    sg.popup(f'{value[0]}竟然对我有意见,心碎了!!','但你的男友是个大度的人,送你一个小礼物吧','请按OK键接收我心碎的礼物!')
    present_bad()

三、效果展示

1)视频展示

可能视频的话我录制的比较粗糙,感觉有点儿看不清楚!

Turtle系列: 恋爱对话小程序之我是你喜欢的类型嘛?

2)截图展示

2.1 弹窗界面

2.2 倒计时5秒

2.3这里选择的是“是的是的”的礼物——选择“不是”的礼物我就不截图了,你们自己拿源码试试 哈哈哈保留悬链。选择不是的话超惊喜滴

以上就是基于Python实现的恋爱对话小程序详解的详细内容,更多关于Python恋爱对话小程序的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实现简单的聊天小程序

    概要 这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室 实现思路 x01 服务端的建立 首先,在服务端,使用socket进行消息的接受,每接受一个socket的请求,就开启一个新的线程来管理消息的分发与接受,同时,又存在一个handler来管理所有的线程,从而实现对聊天室的各种功能的处理 x02 客户端的建立 客户端的建立就要比服务端简单多了,客户端的作用只是对消息的发送以及接受,以及按照特定的

  • 人机交互程序 python实现人机对话

    自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickle,然后润色了一下. # 可能有点无聊(不推荐使用) import pickle import os.path def search(x, data): for k, d in enumerate(data): if x == d['name']: return k, d def save_data

  • 基于Python实现人像雪景小程序

    目录 导语 ​正文 1)素材环境(仅部分) 2)运行环境 3)代码演示 4)效果展示 导语 哈喽~大家早上好鸭! 冷空气来袭,不少地方一夜入冬,南方地区除了冷就是雨,而北方除了冷还有雪. 就说下雪这件事吧,其实南北都特别期待.诗意的白色世界.戏剧般的氛围,容易让人情不自禁地 沉溺其中. 继上一期的[故宫,下雪了]一夜醒来,故宫完成秋冬交接,来自北方的故事纷纷踏雪而来后,小伙伴们都墙裂要求雪景少不了,还需要人物自拍美美的照片! 所以今天我们就来啦,码住这份攻略,雪景最美~​ ​(其实吧:我们这边城

  • Python恋爱小助手之必拿下

    目录 导语 ​​​​​​​Ps--小故事 正文 一.Part 1 表白篇-界面化表白小程序 1)环境安装 2)素材自备 3)正式敲代码 4)效果图 二.Part 2 表白篇-字符画表白小程序 1)环境安装 2)素材自备 3)  正式敲代码 4)效果图 总结 导语 害!现在是10月份了,国庆过完也降温了--还有几个月就过年了,哦吼~ 这一年就快过去了,不知道小编带给大家这么多的表白代码都用了没?用了没吖?如果没用的话小编会继续助攻! 不知道各位单身人士,有没有人从单身dog进化为秀恩爱dog撒~

  • 基于Python实现的恋爱对话小程序详解

    目录 导语 一.小简介 二.代码演示 1)导入模块 2)倒计时 3)画2份不同的礼物 4)二种选择是不同的绘图倒计时之后就是绘制你回答的那个礼物. 5)弹窗设计的文字(可修改) 三.效果展示 1)视频展示 2)截图展示 导语 哈喽!大家好~我是木木子啦!自从写了一些表白类型的一些小脚本.小程序之后,越发不可收拾了,哈哈哈. 常常会有小粉丝说:这......小程序不够啊!刚表白去了,但是被拉黑了. 那我不答应了,我得努努力:多多益善给大家开发一些更有趣的各种各样的适合表白的小程序! 让每个人都争取

  • 基于Python编写一个微博抽奖小程序

    目录 导语 开发工具 环境搭建 先睹为快 原理简介 导语 带大家写个微博自动抽奖小程序吧,motivation和之前的B站自动抽奖小程序一样: 不想内卷了,整个B站全自动抽奖的小程序吧,万一不小心暴富了呢~ 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.8 相关模块: DecryptLogin模块: DecryptLoginExamples模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先睹为快 首先,

  • 基于python内置函数与匿名函数详解

    内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() pow() super

  • 基于python中staticmethod和classmethod的区别(详解)

    例子 class A(object): def foo(self,x): print "executing foo(%s,%s)"%(self,x) @classmethod def class_foo(cls,x): print "executing class_foo(%s,%s)"%(cls,x) @staticmethod def static_foo(x): print "executing static_foo(%s)"%x a=A(

  • 基于Python对象引用、可变性和垃圾回收详解

    变量不是盒子 在示例所示的交互式控制台中,无法使用"变量是盒子"做解释.图说明了在 Python 中为什么不能使用盒子比喻,而便利贴则指出了变量的正确工作方式. 变量 a 和 b 引用同一个列表,而不是那个列表的副本 >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> b [1, 2, 3, 4] 如果把变量想象为盒子,那么无法解释 Python 中的赋值:应该把变量视作

  • 基于Python函数的作用域规则和闭包(详解)

    作用域规则 命名空间是从名称到对象的映射,Python中主要是通过字典实现的,主要有以下几个命名空间: 内置命名空间,包含一些内置函数和内置异常的名称,在Python解释器启动时创建,一直保存到解释器退出.内置命名实际上存在于一个叫__builtins__的模块中,可以通过globals()['__builtins__'].__dict__查看其中的内置函数和内置异常. 全局命名空间,在读入函数所在的模块时创建,通常情况下,模块命名空间也会一直保存到解释器退出.可以通过内置函数globals()

  • 基于Python中capitalize()与title()的区别详解

    capitalize()与title()都可以实现字符串首字母大写. 主要区别在于: capitalize(): 字符串第一个字母大写 title(): 字符串内的所有单词的首字母大写 例如: >>> str='huang bi quan' >>> str.capitalize() 'Huang bi quan' #第一个字母大写 >>> str.title() 'Huang Bi Quan' #所有单词的首字母大写 非字母开头的情况: >>

  • 基于python if 判断选择结构的实例详解

    代码执行结构为顺序结构.选择结构.循环结构. python判断选择结构[if] if 判断条件 #进行判断条件满足之后执行下方语句 执行语句 elif 判断条件 #在不满足上面所有条件基础上进行条件筛选匹配之后执行下方语句 执行语句 else #再不满足上面所有的添加下执行下方语句 执行语句 下面举一个简单的例子,看兜里有多少钱来决定吃什么饭. douliqian=2 if douliqian>200: print("小龙虾走起!!0.0") elif douliqian>

  • 基于Python中求和函数sum的用法详解

    基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

  • 基于Python对数据shape的常见操作详解

    这一阵在用python做DRL建模的时候,尤其是在配合使用tensorflow的时候,加上tensorflow是先搭框架再跑数据,所以调试起来很不方便,经常遇到输入数据或者中间数据shape的类型不统一,导致一些op老是报错.而且由于水平菜,所以一些常用的数据shape转换操作也经常百度了还是忘,所以想再整理一下. 一.数据的基本属性 求一组数据的长度 a = [1,2,3,4,5,6,7,8,9,10,11,12] print(len(a)) print(np.size(a)) 求一组数据的s

随机推荐