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

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

简介

本文讲解如何使用Python编写一个简单的恋爱对话小程序,用户可以随意选择角色性别,进行简单的对话交流。

准备工作

首先,你需要安装Python环境,推荐使用Python 3.6及以上版本。其次,你需要安装几个必要的模块,包括randomtime

import random
import time

编写代码

创建男性角色类

首先,我们需要创建一个男性角色类,其中包含了男性角色的基本信息,如姓名,年龄,星座等。

class Man:
    def __init__(self, name, age, constellation):
        self.name = name
        self.age = age
        self.constellation = constellation

创建女性角色类

接着,我们需要创建一个女性角色类,其中包含了女性角色的基本信息,如姓名,年龄,星座等。

class Woman:
    def __init__(self, name, age, constellation):
        self.name = name
        self.age = age
        self.constellation = constellation

创建对话类

然后,我们需要创建一个对话类,该类包括了对话的基本信息,如对白内容,对白人物等。

class Dialogue:
    def __init__(self, content, speaker):
        self.content = content
        self.speaker = speaker

创建恋爱对话小程序类

最后,我们需要创建恋爱对话小程序类,该类包括了小程序的基本信息,如男性角色,女性角色等。

class LoveDialogue:
    def __init__(self, man, woman):
        self.man = man
        self.woman = woman

        self.dialogues = []

    def start(self):
        self.intro()

        while True:
            self.show_dialogue_menu()
            choice = input().strip()

            if choice == '0':
                print("Goodbye!")
                break

            if choice == '1':
                self.add_dialogue()
                continue

            if choice == '2':
                self.read_dialogues()
                continue

            if choice == '3':
                self.analyse_dialogues()
                continue

    def intro(self):
        print("Welcome to Love Dialogue!")
        print("Your character is {0}, and your partner is {1}".format(self.man.name, self.woman.name))
        print("Let's start our dialogue!\n")

    def show_dialogue_menu(self):
        print("What do you want to do?")
        print("1. Add dialogue")
        print("2. Read dialogues")
        print("3. Analyse dialogues")
        print("0. Quit")

    def add_dialogue(self):
        print("\nType your dialogue:")
        content = input().strip()

        speaker = random.choice([self.man.name, self.woman.name])
        dialogue = Dialogue(content, speaker)

        self.dialogues.append(dialogue)

    def read_dialogues(self):
        for dialogue in self.dialogues:
            print("{0}: {1}".format(dialogue.speaker, dialogue.content))
            time.sleep(1)

    def analyse_dialogues(self):
        man_dialogues = []
        woman_dialogues = []

        for dialogue in self.dialogues:
            if dialogue.speaker == self.man.name:
                man_dialogues.append(dialogue.content)
            else:
                woman_dialogues.append(dialogue.content)

        print("Man's dialogues:")
        for dialogue in man_dialogues:
            print("- {0}".format(dialogue))

        print("\nWoman's dialogues:")
        for dialogue in woman_dialogues:
            print("- {0}".format(dialogue))

示例

示例一

男人名叫Jerry,年龄 23,星座处女座;女人名叫Lucy,年龄 21,星座金牛座。他们在一个夏天里相遇了,并且彼此相爱了。以下是他们的对话。

man = Man("Jerry", 23, "Virgo")
woman = Woman("Lucy", 21, "Taurus")

love_dialogue = LoveDialogue(man, woman)
love_dialogue.start()
Welcome to Love Dialogue!
Your character is Jerry, and your partner is Lucy
Let's start our dialogue!

What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
1

Type your dialogue:
Hello Lucy, how are you today?
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
1

Type your dialogue:
I'm fine, thank you. How about you Jerry?
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
2

Jerry: Hello Lucy, how are you today?
Lucy: I'm fine, thank you. How about you Jerry?
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
3

Man's dialogues:
- Hello Lucy, how are you today?

Woman's dialogues:
- I'm fine, thank you. How about you Jerry?

示例二

男人名叫Tom,年龄 25,星座双鱼座;女人名叫Kate,年龄 27,星座天秤座。他们是一对恋人,在一起已经两年了。以下是他们的对话。

man = Man("Tom", 25, "Pisces")
woman = Woman("Kate", 27, "Libra")

love_dialogue = LoveDialogue(man, woman)
love_dialogue.start()
Welcome to Love Dialogue!
Your character is Tom, and your partner is Kate
Let's start our dialogue!

What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
1

Type your dialogue:
Kate, I love you more and more every day.
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
1

Type your dialogue:
I love you too, Tom. I cannot imagine how life would be without you.
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
2

Tom: Kate, I love you more and more every day.
Kate: I love you too, Tom. I cannot imagine how life would be without you.
What do you want to do?
1. Add dialogue
2. Read dialogues
3. Analyse dialogues
0. Quit
3

Man's dialogues:
- Kate, I love you more and more every day.

Woman's dialogues:
- I love you too, Tom. I cannot imagine how life would be without you.

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Python实现的恋爱对话小程序详解 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • python文件选择对话框的操作方法

    当我们需要在Python中进行文件操作时,有时会需要手动选择文件路径和文件名。此时,可以使用Python文件选择对话框,在GUI界面中方便快捷地进行文件选择。以下是Python文件选择对话框的操作方法攻略: 1. 导入模块 使用Python进行文件操作时,需要导入tkinter.filedialog模块,代码如下: from tkinter import f…

    python 2023年6月13日
    00
  • Python实现简单的”导弹” 自动追踪原理解析

    Python实现简单的”导弹”自动追踪原理解析 前言 本文介绍如何使用Python实现一个简单的”导弹”自动追踪功能。该功能主要包括两个部分,首先是识别并实时跟踪目标的位置;其次是对目标进行自动追踪。本文将分别介绍二者的实现过程。 识别目标位置 获取视频流 首先需要获取视频流,并将其转换为一系列帧。这可以通过使用OpenCV库来实现。 import cv2 …

    python 2023年6月6日
    00
  • 如何在 Python 中使用 Redis?

    如何在 Python 中使用 Redis? Redis 是一个开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希、列表、集合等。Redis 通常用于缓存、消息队列实时数据处理等场景。在 Python 中,我们可以使用 Redis-py 库来连接 Redis 数据库,并使用 Python 代码来操作 Redis 数据库。 以下是如何在 Python…

    python 2023年5月12日
    00
  • python模拟登陆阿里妈妈生成商品推广链接

    Python模拟登陆阿里妈妈生成商品推广链接是一种自动化的方法,可以快速有效地推广商品链接。下面是该攻略的完整流程: 1. 确认所需的工具和信息 在开始之前,需要准备以下工具和信息: Python环境和依赖库(requests、re、json、hashlib、time、selenium、urllib等) 阿里妈妈账号和密码 想要推广的商品的链接 2. 安装依…

    python 2023年6月3日
    00
  • Python中的字典合并与列表合并技巧

    Python中的字典合并与列表合并技巧都是常用的操作,下面我来详细讲解一下。 字典合并技巧 字典合并技巧常用于将两个字典的键值对合并成一个字典。Python提供了三种方法来实现字典合并。 方法一:update() Python的字典提供了update()方法,可将一个字典的键值对合并到另一个字典中。 dict1 = {‘name’: ‘张三’, ‘age’:…

    python 2023年5月13日
    00
  • Python编写运维进程文件目录操作实用脚本示例

    Python编写运维进程文件目录操作实用脚本是一项非常实用的技能。下面针对该技能,给出完整的攻略: 什么是Python编写运维进程文件目录操作实用脚本? Python编写运维进程文件目录操作实用脚本是指使用Python编程语言来编写一些实用脚本,可以对运维进程进行管理和操作,方便对文件和目录进行操作。 Python编写运维进程文件目录操作实用脚本技能要求 P…

    python 2023年6月2日
    00
  • 使用python解析xml成对应的html示例分享

    使用Python解析XML成对应的HTML示例分享 在本文中,我们将介绍如何使用Python解析XML文件,并将其转换为对应的HTML文件。我们将使用Python内置的xml.etree.ElementTree模块来解析XML文件,并使用字符串拼接的方式生成HTML文件。 步骤1:解析XML文件 在使用Python解析XML文件之前,我们需要先安装xml.e…

    python 2023年5月15日
    00
  • python入门课程第三讲之编码规范知多少

    Python入门课程第三讲之编码规范知多少 在Python编程中,编码规范是非常重要的,它可以提高代码的可读性、可维性和可扩展性。在本文中,我们将详细讲解Python编码规范的基本知识,包括命名规范、缩规范、注释规范等。 命名规范 在Python编程中,命名规范是非常重要的。下面是一些常见的命名规范: 变量名应该使用小写字母,单词之间使用下划线分隔。 函数名…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部