用Python来写一个男女相亲小程序|码农的情人节

码农的情人节

一年一度的情人节要来啦,这个浪漫温馨的节日,走在大街小巷,走在地铁里,走在商场里,走在电影院,姑娘们手里几乎都捧着一束花,心里都是乐滋滋的,一脸幸福的样子,忽然想起来很多年前我第一次送花的时候,好吧一晃都十几年过去了,在这么一个特别的日子,我也凑个热闹,也来参与一下这个情人节,于是我写一个Python相亲择偶的小程序,算是码农特有的方式过情人节吧~~


码农这个群体,高学历,高工资,高智商,但是不善于交流,圈子也很小,相信很多小伙伴或者周围的小伙伴,都有相亲的经历,或者被父母逼去相亲的经历,一般都是问年龄,你要找什么样的,有的还特讲究生肖匹配,记得网上有一个段子,说男的20-60岁都只喜欢一种类型的女孩,而20岁到60岁的女孩相亲需求却不断的变化,好我们的小程序就实现这样的功能

功能:

你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写

第一部分:用户输入部分

1.获取用户的输入:我们用raw_input()

args =raw_input('Please input your info:sex[man,woman],age[20..60],birthday[month-day]\n')

我们希望用户输入3个参数,男或者女,年龄在20-60岁之间,生日,这个有3个问题需要解决

1).检查用户的输入,首先是长度

len(args.split())判断一下是不是3个参数

2).若长度对了,检查第一个参数是man还是woman

sexs = ['man', 'woman']

args.split()[0] not in sexs:

3).若第一个参数也对了,检查第二个参数

int(args.split()[1]) < 20 or int(args.split()[1]) > 60

也可以用int(args.split()[1]) not in range(20,61)

有一个要注意,因为输入的都是字符串,所以比如输入的20,其实是字符串'20',必须要强制转换成20才能进行比较,而且range值接受integer

4).若第二个参数读对了,检查第三个参数也就是日期

其实的合法性检查需要用datetime.datetime.strptime()若成功就返回True,否则会报错,然后我们用try/except来捕捉,若捕到了就返回False.

我这边还是很温柔的用if/elif/else这样的判断,当然你也可以暴力的用raise TypeError这样抛出一些错误.

第二部分:生日和星座的映射

2.我们让用户输入的是性别,年龄和生日,我们需要把生日转换成星座,然后才好进一步调用

1).生日和星座的mapping这个很简单,构造2个表格

constellation_name_list = [u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',

u'金牛座',u'双子座',u'巨蟹座',u'狮子座',

u'处女座',u'天秤座',u'天蝎座',u'射手座']

constellation_date_range = [(1,20),(2,19),(3,21),(4,21),

(5,21),(6,22),(7,23),(8,23),

(9,23),(10,23),(11,22),(12,22)]

2),判断生日落在哪个区间

这个解法有很多种,有一种比较讨巧的解法,是用python自带的列表比较,比如(2,1)<(2,19),利用这一点,再加上filter函数,只需要1行代码搞定,这一点非常巧妙

res=filter(lambdaeach_constellation: each_constellation <= (month,day),constellation_date_range)

会返回一个过滤的序列,比如输入的生日在3.10,那么(3,10)比(3,21)小,这样就过滤得到一个列表是[(1,20),(2,19)],取其长度为2,然后把2作为星座列表index,取constellation_name_list[2]就可以了

return constellation_name_list[len(res) %12]

有一点要注意的是星座的列表长度是12,但是下标最大是[11]

第三部分:男女择偶样本

3.我这边用一个简单的网络段子构造样本,都说男的从20到60岁都一直喜欢一种类型的就是"年轻漂亮的",而女孩喜欢的对象,随着自己年龄和阅读的增长,需求是不断的变的

25岁左右的女孩喜欢=>高大,帅气的

30岁左右的女孩喜欢=>事业有成,潇洒多金

35岁左右的女性喜欢=>成熟稳重,有责任感

40岁左右的女性喜欢=>性格温和,有共同的生活目标

50岁左右的女性喜欢=>身体健康,会照顾家庭的

60岁左右的女性喜欢=>有相同话题的,说的来的

25岁左右的男孩喜欢=>年轻漂亮的

30岁左右的男人喜欢=>年轻漂亮的

35岁左右的男人喜欢=>年轻漂亮的

40岁左右的男人喜欢=>年轻漂亮的

50岁左右的男性喜欢=>年轻漂亮的

60岁左右的男性喜欢=>年轻漂亮的

果然男的很专业~~哈哈

1).我们构造2个函数

一个处理男的择偶需求,一个处理女的择偶需求,程序就是算法+数据结构,我们这边的数据结构用字典,列表都可以,我这边用一个列表构造一下

woman_choice_25 = [u'帅气',u'个子高']

woman_choice_30 = [u'有钱',u'事业有成']

woman_choice_35 = [u'稳重',u'有责任心']

woman_choice_40 = [u'对我好',u'有共同的生活目标']

woman_choice_50 = [u'身体健康',u'顾家']

woman_choice_60 = [u'有共同语言']

woman_chocies = [woman_choice_25,woman_choice_30,woman_choice_35,

woman_choice_40,woman_choice_50,woman_choice_60]

woman_ages = [25,30,35,40,50,60]

2).逻辑部分

入口肯定是自己的年龄了,内部逻辑很简单,一个age判断就可以了

但是这样有点麻烦,我用了一个filter函数,把age的判断封装到filter里面去,看上去会简单一点filter(lambda age: age < your_age, woman_ages)

第四部分: 男女星座的匹配

4.星座的匹配网上有成熟的mapping关系,我们直接写死在一个字典里面,当然是字典套字典的

constellation_mapping_dict = {u'白羊座': [u'狮子座',u'白羊座',u'金牛座'],

u'金牛座': [u'处女座',u'摩羯座',u'巨蟹座'],

u'双子座': [u'水瓶座',u'射手座',u'天秤座'],

u'巨蟹座': [u'双鱼座',u'天蝎座',u'摩羯座'],

u'狮子座': [u'射手座',u'白羊座',u'水瓶座'],

u'处女座': [u'摩羯座',u'金牛座',u'双鱼座'],

u'天秤座': [u'双子座',u'水瓶座',u'狮子座'],

u'天蝎座': [u'双鱼座',u'处女座',u'射手座'],

u'射手座': [u'白羊座',u'狮子座',u'双子座'],

u'摩羯座': [u'金牛座',u'处女座',u'双鱼座'],

u'水瓶座': [u'天秤座',u'双子座',u'狮子座'],

u'双鱼座': [u'天蝎座',u'巨蟹座',u'摩羯座']}

我们只要输入一个星座,然后查这个表就可以得到匹配的星座

第五部分:程序的交互输出(中英文版)

5.一般程序的输出不外乎,终端打印,文件输出,GUI,网页

1).我们这个是小程序,就简单的用打印输出吧

2).为了让用户体检好一些,我用中英文两个版本

大家要注意输出中文的时候,一定要用下面两行

reload(sys)

sys.setdefaultencoding('utf-8')

3).用户交互

我这边用了一个while来hold住死循环,里面不断的打印输出结果,然后提示一些信息,用户根据提示,输入相应的信息,若是q就退出

好最后看一下结果:


总结:

其实这个程序比较简单了,但是这个话题其实很有趣,真正要调查研究挖掘一下的话,需要用爬虫去婚恋网爬几千几万个样本数据,然后数据清洗之后,存到数据库里面,再把这些数据抽取特征值,用一些数据挖掘,机器学习的算法进行分析,然后画出一些直观的柱状图,圆饼图,这样才过瘾~~哈哈,放心后面我们会实例讲数据分析的~~

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
─分类持续更新中 │ ├─o2o行业(2个) │ │ 盒马鲜生.zip │ │ 轻客洗衣.zip │ │ │ ├─互联网行业(5个) │ │ 云文档.zip │ │ 仿ofo共享单车.zip │ │ 仿美团外卖.zip │ │ 仿饿了么.zip │ │ 灵犀外卖.zip │ │ │ ├─交友互动(1个) │ │ 小契约(交友互动小程序).zip │ │ │ ├─企业展示(3个) │ │ 信息科技公司展示小程序.zip │ │ 华云智慧园区.zip │ │ 房地产公司展示.zip │ │ │ ├─企业应用(1个) │ │ 企业OA系统小程序.zip │ │ │ ├─优惠券卡卷(1个) │ │ 优惠券卡卷小程序.zip │ │ │ ├─促销抽奖(2个) │ │ 幸运大抽奖.zip │ │ 购物节抽奖小程序.zip │ │ │ ├─保险行业(1个) │ │ 平安保险小程序.zip │ │ │ ├─健身行业(1个) │ │ 健身房预约课程小程序.zip │ │ │ ├─医疗保健(3个) │ │ 医疗保健课程(完整带node后台).zip │ │ 医疗床位查询小程序.zip │ │ 医疗急救小程序.zip │ │ │ ├─同城分类(1个) │ │ 新豆瓣同城分类信息小程序.zip │ │ │ ├─商城模板(34个) │ │ 3C手机商城小程序.zip │ │ kindle图书商城小程序.zip │ │ 一元夺宝商城小程序.zip │ │ 五洲到家.zip │ │ 五洲商城.zip │ │ 京东白条.zip │ │ 京东首页demo.zip │ │ 仁怀酱酒宝:酒类商城模板.zip │ │ 企业版商城小程序.zip │ │ 化妆品商城.zip │ │ 同乐居商城:购物车合算.zip │ │ 和茶网.zip │ │ 咫尺商圈多商家小程序.zip │ │ 商城.zip │ │ 喜乐茶铺商城小程序.zip │ │ 大好商城.zip │ │ 小米商城.zip │ │ 微信电商.zip │ │ 扫码购物商城.zip │ │ 有调.zip │ │ 服装供销商城小程序.zip │ │ 母婴商城.zip │ │ 淘票票.zip │ │ 猫眼.zip │ │ 环球小镇.zip │ │ 球鞋商城.zip │ │ 生鲜商城.zip │ │ 电梯品牌商城.zip │ │ 盒马鲜生.zip │ │ 美容美甲商城.zip │ │ 赞赏.zip │ │ 阿姨帮.zip │ │ 零食商城.zip │ │ 骆驼优品服饰商城小程序.zip │ │ │ ├─图片展示(1个) │ │ 多肉植物图鉴.zip │ │ │ ├─地图定位(2个) │ │ 地图定位.zip │ │ 滴滴作业.zip │ │ │ ├─外卖点餐(8个) │ │ KFC-master.zip │ │ weapp-360che-master.zip │ │ 仿美团外卖.zip │ │ 十二神鹿点餐(外卖小程序).zip │ │ 外卖带bmob后端.zip │ │ 外卖:实现类似锚点功能.zip │ │ 通乐居外卖.zip │ │ 饿了吗.zip │ │ │ ├─娱乐搞笑(4个) │ │ 微笑话.zip │ │ 煎蛋.zip │ │ 百思不得姐.zip │ │ 笑话.zip │ │ │ ├─婚纱摄影(1个) │ │ 柠檬树婚纱照.zip │ │ │ ├─小工具类(19个) │ │ iOS计算器.zip │ │ XCX-scaffold-master.zip │ │ 事项助手.zip │ │ 二维码生成器.zip │ │ 倒班日历.zip │ │ 周公解梦.zip │ │ 图表.zip │ │ 备忘录.zip │ │ 手势解锁.zip │ │ 搜索框.zip │ │ 查拼音.zip │ │ 步步高字典.zip │ │ 生活圈.zip │ │ 画布:时钟.zip │ │ 番茄时钟.zip │ │ 简易计算器.zip │ │ 蝌蚪签到.zip │ │ 金融理财计算器.zip │ │ 鱼缸表盘系统小程序.zip │ │ │ ├─小游戏类(12个) │ │ 二十四节气小程序.zip │ │ 你画我猜(1).zip │ │ 你画我猜.zip │ │ 守望先锋资讯小程序.zip │ │ 宝可梦图鉴(游戏小程序).zip │ │ 数独小游戏.zip │ │ 漂流瓶.zip │ │ 狼人杀.zip │ │ 王者荣耀故事站小程序带Vue后台.zip │ │ 疯狂吃月饼(node+mysql).zip │ │ 谁是杀手小程序游戏.zip │ │ 飞机大战.zip │ │ │ ├─影音娱乐(8个) │ │ 个人音乐台.zip │ │ 仿哔哩哔哩.zip │ │ 仿腾讯视频小程序.zip │ │ 光影娱乐带后台.zip │ │ 小丑电影小程序.zip │ │ 找电影视频小程序.zip │ │ 电影日历.zip │ │ 音乐影音之家.zip │ │ │ ├─报名预约(3个) │ │ 51报名管家小程序.zip │ │ 家政预约.zip │ │ 运动荟小程序.zip │ │ │ ├─招聘行业(2个) │ │ 仿拉钩App小程序.zip │ │ 体育圈招聘小程序.zip │ │ │ ├─拼车源码(2个) │ │ 同城拼车(完整带PHP后台).zip │ │ 滴滴拼车.zip │ │ │ ├─教育培训(7个) │ │ Bookshare 借书小程序.zip │ │ 云文档.zip │ │ 悦读神器.zip │ │ 托福资料(完整带Java后台).zip │ │ 校内网小程序.zip │ │ 蒙台梭利幼教.zip │ │ 课程预约.zip │ │ │ ├─新闻资讯(8个) │ │ 今日头条.zip │ │ 会议精灵.zip │ │ 体育新闻.zip │ │ 体育新闻赛事数据.zip │ │ 妈妈课堂.zip │ │ 富文本解析,折线图,MD5,bluebird.zip │ │ 新闻阅读器.zip │ │ 知乎.zip │ │ │ ├─旅游行业(2个) │ │ 班夫旅游小程序.zip │ │ 东航旅行.zip │ │ 兵马俑小程序(含语音画册与实时导览).zip │ │ 户外旅游小程序.zip │ │ 熊猫签证.zip │ │ 面包旅行.zip │ │ │ ├─智能家居(1个) │ │ 智能用电.zip │ │ │ ├─水利工程(1个) │ │ 宏华水利小程序.zip │ │ │ ├─汽车行业(5个) │ │ 卡卡汽车 获取用户 设备信息.zip │ │ 奥多停车小程序.zip │ │ 汽车测评小程序.zip │ │ 汽车维修保养商店小程序.zip │ │ 爱卡汽车.zip │ │ │ ├─法律咨询(1个) │ │ 律师帮帮法律咨询.zip │ │ │ ├─演绎博览(1个) │ │ 世博展会小程序.zip │ │ │ ├─物流快递(2个) │ │ 包裹转运物流小程序.zip │ │ 寄快递小程序.zip │ │ │ ├─生活服务(9个) │ │ 人民好公仆小程序(生活+便民+政务).zip │ │ 奥多停车小程序.zip │ │ 学车预约小程序.zip │ │ 房贷计算器.zip │ │ 有住网(装修小程序).zip │ │ 树芽读书.zip │ │ 物品回收.zip │ │ 股票分时图K线图小程序.zip │ │ 蜗牛生活服务.zip │ │ │ ├─社交交友(6个) │ │ gank.zip │ │ HIAApp.zip │ │ SmallAppForQQ-master.zip │ │ 分答.zip │ │ 微信.zip │ │ 豆瓣同城.zip │ │ │ ├─社区论坛(1个) │ │ V2EX社区小程序.zip │ │ │ ├─租赁行业(1个) │ │ 电器租赁小程序.zip │ │ │ ├─简单demo(3个) │ │ wechat-app-xiaoyima-master.zip │ │ 【学习Demo】影视推荐、音乐播放、地图.zip │ │ 滑动选项卡.zip │ │ │ ├─艺术生活(2个) │ │ 小熊日记.zip │ │ 艺术.zip │ │ │ ├─节日祝福(1个) │ │ 祝福话.zip │ │ │ ├─装修装饰(2个) │ │ 家居装修团购小程序.zip │ │ 装修预约小程序.zip │ │ │ ├─视频直播(2个) │ │ 仿斗鱼直播小程序.zip │ │ 天天快拍.zip │ │ │ ├─论坛系列(2个) │ │ cncode论坛.zip │ │ 微赞论坛.zip │ │ │ ├─运动健身(1个) │ │ 悦跑圈.zip │ │ │ ├─金融行业(1个) │ │ 投融圈小程序(投资、融资类).zip │ │ │ ├─门店展示(1个) │ │ 茶铺门店小程序.zip │ │ │ ├─门店店铺(1个) │ │ 汤总便利小程序.zip │ │ │ ├─阅读读书(5个) │ │ IT书单.zip │ │ 仿网易蜗牛读书.zip │ │ 新浪读书.zip │ │ 树芽读书.zip │ │ 阅享小程序(阅读评价类).zip │ │ │ └─餐饮美食(4个) │ 健康菜谱.zip │ 美食菜谱.zip │ 辣椒忍者.zip │ 麦当劳点餐.zip │ └─带后台 云商城(带php后端).zip 健康膳食.zip 其他带后端多个源码.zip 笔记带后端.zip 商城类完整demo:DFS:前端、PHP后端.zip 喵喵小说.zip 图片预览带后端.zip 城市地图(后端为Python).zip 外卖搭伴拼团php后端.zip 大巴预定系统(后端为php).zip 天气预报带后端.zip 实时巴士带后端.zip 客家旅运带后端.zip 小程序完整demo:飞翔的小鸟:canvas实现,java后端(适用1221).zip 小迪外卖+后台.zip 巴爷商城商城类(后端为ruby).zip 式神猎手带后端.zip 待办事项管理.zip 微信支付后端demo(java).zip 微信支付后端示例.zip 微商城+项目搭建指南.zip 扫码借阅系统:PHP后端.zip 拼单神器:含 leanCloud后端.zip 搭伴拼团php后端.zip 新爱靓女+后台+安装方法.zip 明星图(含NODEJS后端).zip 涂鸦(含node后端).zip 游轮中心带后端.zip 灵动云商城+php后台+后台配置教程.zip 爱靓女带后台.zip 猫眼电影含node后端.zip 看书阅读带后端.zip 私语:录音及播放(含PHP后端).zip 移动小商城:基于node,包含前后台.zip 笑话集.zip 简易记账带后端.zip 美人鱼小说;包含前后端.zip 茶叶商城(后端为ruby).zip 语音日记本;php后端.zip 足球圈(包含node后端).zip 金盆洗脚城;node后端.zip 销售龙虎榜:包含后端.zip 集思笑话,含Vue.js后端,点赞.zip 音乐播放器带后端.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值