【Python项目】Python实现一个亲戚关系计算器,过年回家再也不要怕叫错人了 | 附带源码

本文介绍了使用Python实现的亲戚关系计算器,旨在解决春节时称呼亲戚的困扰。文章详细阐述了算法实现、数据定义、功能需求及关键代码,包括transformTitleToKey、FilteHelper和dataValueByKeys三个主要函数。
摘要由CSDN通过智能技术生成

前言

halo,包子们上午好
一个简单的中国亲戚关系计算器 python实现版本 每年的春节,都会有一些自己几乎没印象但父母就是很熟的亲戚,关系凌乱到你自己都说不清。 今年趁着春节在家没事情干,正好之前知道有中国亲戚关系计算器,想着自己实现一下,特此记录。

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
源码点击蓝色字体领取

算法实现与介绍

由于本人能力有限,只完成了基本功能…

需求

计算亲戚关系链得出我应该怎么称呼的结果

数据定义

1、定义关系字符和修饰符

【关系】f:父,m:母,h:夫,w:妻,s:子,d:女,xb:兄弟,ob:兄,lb:弟,xs:姐妹,os:姐,ls:妹

【修饰符】 &o:年长,&l:年幼,#:隔断,[a|b]:并列

2、关系对应数据集合、关系过滤数据集合(data.json 和 filter.json)
原来参考的作者的关系过滤数据集合json有点问题,改了一下

filter 数据集的用途:比如 m,h 是我的妈妈的丈夫就是爸爸,也就是 f。 filter 的作用是去重和简化,需要把 exp 用
str 进行替换

算法实现

需要解决的情况基本有以下三种:

  • 我的爸爸 = 爸爸,
  • 我的哥哥的弟弟 = 自己/弟弟/哥哥,
  • 我的哥哥的老公 = ?

分析

三种结果:1.单结果 2.多结果 3.错误提示 ,那么我们的算法要兼容以上三种情况 下面我们来一步步实现。

开发工具

Python版本:3.7.8
相关模块:
tkinter模块;
random模块;
threading模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

在这里插入图片描述

代码展示

算法主要函数一:transformTitleToKey

该函数主要负责将文字转换成关系符号

源码+课件+学习解答加群:494958217
# 将文字转换成关系符号
def transformTitleToKey(text):
    result = text.replace("的", ",").replace("我", "").replace("爸爸", "f").replace("父亲", "f").replace("妈妈","m").replace("母亲", "m").replace("爷爷","f,f").replace("奶奶", "f,m").replace("外公", "m,f").replace("姥爷", "m,f").replace("外婆", "m,m").replace("姥姥", "m,m").replace("老公","h").replace("丈夫", "h").replace("老婆", "w").replace(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值