基于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的NumPy中对数组进行标准化

    标准化是指将数值型数据转换为均值为0,标准差为1的过程,常用于机器学习和数据分析中。在Python的NumPy中,可以通过以下几个步骤对数组进行标准化: 计算数组的均值和标准差 import numpy as np # 创建一个数组 arr = np.array([[1, 2], [3, 4], [5, 6]]) # 计算均值和标准差 mean = np.m…

    python-answer 2023年3月25日
    00
  • Python列表创建与销毁及缓存池机制

    在Python中,列表是一种非常常见的数据类型。本文将详细讲解Python列表的创建与销毁以及缓存池机制。 列表的创建与销毁 创建列表 在Python中,可以使用方括号[]或list()函数来一个列表。下面是两个示例: # 示例1:使用方括号[]创建列表 lst1 = [1, 2, 34, 5] # 示例2:使用list()函数创建列表 lst2 = lis…

    python 2023年5月13日
    00
  • 创建SparkSession和sparkSQL的详细过程

    创建SparkSession和SparkSQL是使用Apache Spark进行数据处理和分析的基础。下面是创建SparkSession和SparkSQL的详细过程: 创建SparkSession 导入SparkSession import org.apache.spark.sql.SparkSession 创建SparkSession对象 val spar…

    python 2023年6月3日
    00
  • nx.adjacency_matrix计算邻接矩阵与真实结果不一致的解决

    在使用 nx.adjacency_matrix 函数计算邻接矩阵时,有时候会出现计算结果与预期不一致的情况,这可能是由于以下原因造成的:节点的排序可能会影响计算结果、网络图中存在对称边或自环等。本文将介绍如何解决这些问题。 问题一:节点排序对计算结果的影响 考虑以下简单的网络图: import networkx as nx G = nx.Graph() G.…

    python 2023年6月3日
    00
  • Python进度条tqdm的用法详解

    Python进度条tqdm的用法详解 简介 Python中的tqdm是一个用于显示进度条的库,可以方便地在循环时显示任务的进度条,使代码更加美观而又直观。 tqdm 默认情况下可以显示进度条、已完成的百分比、已完成的任务数量、预计剩余时间等信息。 安装 通过pip安装tqdm库: pip install tqdm 基本用法 使用tqdm最基本的用法是通过包裹…

    python 2023年6月2日
    00
  • 使用C++调用Python代码的方法详解

    下面我将详细讲解使用C++调用Python代码的方法,希望能对你有所帮助。 什么是C++调用Python C++是一种高效而强大的编程语言,而Python则被广泛用于数据处理和科学计算。使用C++调用Python的过程就是将Python代码集成到C++程序中,使得C++可以调用Python模块和函数。这种方法可以使得用C++编写的程序,直接调用Python中…

    python 2023年5月13日
    00
  • Python中的xlrd模块使用整理

    下面是详细讲解Python中的xlrd模块的使用整理: 什么是xlrd模块 xlrd是Python语言的一个库,用于读取和处理Excel文件,支持.xls和.xlsx格式的文件。该模块可以帮助我们读取Excel文件中的所有数据,并对其进行处理和分析。 安装xlrd模块 使用pip install xlrd命令即可安装xlrd模块,如下所示: pip inst…

    python 2023年5月13日
    00
  • python使用urllib2模块获取gravatar头像实例

    简述获取gravatar头像的原理 Gravatar是一项用于为用户提供全球通用头像的服务,每个Gravatar对应一个256位MD5哈希值,这个哈希值是基于用户的注册邮箱计算而来的。我们可以在Gravatar的官网上注册一个账号,然后上传对应的头像,这样我们就可以使用这个邮箱地址在任何支持Gravatar的网站上显示自己的头像。 Python中可使用urr…

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