第一次发布自己写的代码,特附上个人的详细说明。如有错误,在所难免,欢迎指正。

备注:此作品借鉴了一下我们老师的代码,进行了仿写。

这个是一个简单的《非诚勿扰》游戏。

思路:1.随机设置假人的姓名、性别(2代表男生,3代表女生)、城市、薪水。采用split+通过random函数实现
2.采用循环了1000个假人,生成采用了列表嵌套字典及列表中存放了1000条字典数据
4.通过双重循环随机配对,配对成功即break(破出循环),其它复杂情况留着以后玩
5.在配对过程中要注意男-女配对的问题,将(1-sex)即可得到需要的另外一个性别
6.格式化输出配对成功的假人
7.输出配对成功的人数

#个人根据老师的配对程序仿写了部分代码,并对原代码进行了一些简化。以帮助同学们扩展思路.from random import random,choice,randint
#---从随机模块(random)引入三个函数(随机random函数,choice函数,randint函数)xxx=[]   #-----建立空列表#----下面用for循环语句生成含字典成员的xxx列表
for x in range(0,1000):  #---执行1000次下面的代码name=["苗惠文","黄士豪","林彦海","丁文欣","陈慈云","张雅臻","黄慧萍","冯茹琬","林凡洁","倪欣颖","林重伯","张哲绿","曾诗涵","邱冠儒","张水蓉","杨秀慧","刘意霖","陈怡哲","戈怡萍","常伦怡","郭均冰","陈怡侑","杨智嘉","吴冠伦","刘彦莲","怀得祯","江美惠","刘依婷","李千紫","萧健铭","黄惠白","赵静怡","梁淑娟","邓圣文","吴静吟","黄冠勋","杨雅茹","杨佩芬","罗羽江","黎志杰","陈永贤","张水英","黄阳任","郭骏凡","林洁慈","曾克雄","林华山","陈玉翰","沈荣嘉","甯国华","王志杰","严芸豪","陈宛娥","林上盈","张志文","王昱宏","程柏儒","谢欣洁","陈建苹","黄柏政","侯左顺","张顺雪","吴志容","谢宛梦","王怡阳","刘任玮","张宛君","吴俊定","刘雅文","伍骏维","杨佳颖","林乔齐","李莹茜","李慧勇","周俊逸","王天芬","陈淑惠","杨雅旺","金志瑞","王恭吟","苏辛辉","赵国君","吴雅芬","王嘉祥","郑雅泉","陈雅婷","王凤珠","郭康芝","陈孟菁","林承江","黄依婷","黄山颖","杨人名","李淑芬","吴威德","王圣义","黄娇旭","朱宜欣","陈振江","郭智强","许翰芸","钱雯升","陈柏德","谢文祥","陈婉君","林玉桦","隆馨妤","刘伦齐","张珊郁","王妙睿","李威珮","邓富勋","杨舒原","谢佳嘉","张明名","王志铭","李采威","刘爱惠","吴筱芸","刘依婷","赵俊嘉","黄志法","陈友汉","杨映维","谢佳宏","王惠雯","廖宏达","黄怡祯","陈世英","马志文","谢欣青","林钧娇","钟雅雯","张贞依","阮佩璇","刘威廷","黎靖凯","黄晏辉","古馨文","黄盈甄","吴佳皓","赖玉婷","李珮君","张哲嘉","蔡仪谕","林建坚","张莉海","李庭俊","吴维伦","吴盈甄","陈怡秀","林玮真","张孟颖","蔡明幸","许淑芳","李伟伦","张文达","吴思义","吴宗妃","徐盈如","蔡承祥","洪雅娟","林淑芳","阮呈信","涂彦均","张薇芳","戴任发","黄子友","丁昆来","王成茹","陈展忠","李雅惠","陈萱翰","苏士铭","庾思婷","连俊明","黄明心","陈蓉育","冯宇翔","吴欣美","李佩坚","李雅玲","陈左绮","黄千惠","姜懿书","林诗宁","谢泓圣","赵宛乔","袁巧尧","赵文欣","张玉宣","林财洁","吴芳如","吴琼慧","刘力靖","陈志治","毛蕙行","谢雅琪","刘礼纬","张崇维","罗翔欣","陈伟辉","夏允仲","郭真发","袁思涵","刘右德","周承翰","黄莉定","赖汉白","张怡桦","王俊旺","陈亦升","钟可欣","萧雅珍","李馨名","蔡馨伟","李淑纬","黄芳仪","李莉婷","荀淑敏","朱欣怡","李雅花","林诗麟","陈慧菱","赵崇秀","彭雅竹","赵奕君","林君均","张良合","蔡雅筠","周桂荣","边倩季","王珊杰","林侑圣","蔡宜欣","张志芸","黄美慧","王定星","徐俊维","蒋素仪","李政新","廖永芬","张淑梦","郑哲凡","陈佳颖","刘依婷","陈信志","李佳学","黄珮纯","赵天旭","周慧桦","陈允钰","罗志祥","潘宛靖","叶尚霖","刘哲豪","林冠美","吴采舜","卢美舜","陈瑞昀","王泓志","郑志豪","管廷盛","李志文","穆俊明","柳博易","黎逸书","何冠宏","杨晋仲","陈玫卿","邱力俊","黄儒礼","蔡倩亚","谢明宪","王静怡","吴宣一","陈俊筠","郭秀娟","周美云","倪婉玲","徐均俐","郭文豪","杨予季","吴岳淳","蔡昱一","陈怡雯","林子元","李素男","徐俊云","陈芝凡","苏雅芳","徐雅惠","林于真","黄士弘","李定劭","刘静宜","吴美宇","张维凡","王志翔","张嘉雯","谢佩祯","陈欣瑄","赖明儒","黎馨仪","林晓霖","林怡君","李建廷","李怡伶","王丽仲","郑仕麟","周志嘉","黄海娇","陈民盈","陈石岳","李圣英","叶雅萍","黄伟智","翁若昌","璩美惠","李昀绍","柳昌凯","李宗秋","李美华","马姿吟","赵佳静","程成兴","蔡育菁","陈俊宪","郭绿豪","林士法","王韵如","艾美娟","黄清宜","曹冠志","颜丽辉","刘慧娟","蔡秉孝","王怡松","庾皓治","黄育玮","吴湘生","许皓吉","蔡姿婷","陈晓纶","杨火行","罗宜珊","曾钰婷","钱杰意","金倩均","潘意书","谢冠宇","林崇东","陈千惠","林瑞妃","杨筱英","许雅雯","黄小竹","蔡惠雯","吴俊霖","王美泉","邱淑贞","吴志嘉","赖彦豪","陈映汉","苏纬萍","蔡怡君","潘淑珍","余子杰","黄进如","温佳蓉","高俊逸","郑文松","王雅蓉","林佩玲","林佩雯","陈之映","王博文","苗杰慈","郭姿颖","高雅芬","萧怡安","朱雅芳","李世杰","江雅雯","温怡孜","吕伟诚","余得火","奚淑惠","陈正齐","吴政紫","杨庭舜","陈淑玲","杨郁翔","邱士贤","蔡家维","陈义成","张珊和","李政达","卢家瑜","黄珮俊","黄圣梦","张怡伶","王怡君","杨琬翰","杜伟来","谢胜瑞","强琳任","邱育治","刘秀娟","林秀佳","周筱婷","陈若臻","刘佩淑","鲁俊贤","马怡臻","黄健铭","洪贞仪","钱惠雯","张淳湖","袁宛臻","李绍辛","邱欣怡","陈宛臻","钟伦勇","刘钰雯","钱子紫","赵志伟","苏庆昆","洪晋凯","沈佳仪","陈秀娟","许家海","李建宇","林秋生","刘玉娟","黄秀慧","蒋明哲","林智竹","张秀乔","黄婉婷","陈盈韦","黄美斌","吴书玮","陈伟杰","谢秀娟","黄启靖","林威友","张维梅","林诗康","李丽珠","杜惠如","别必斌","李明珠","邱欣怡","王志劭","高旭光","郭怡安","林湘桦","颜建辉","萧冠中","吴智强","刘健毓","林怡恩","刘佳雯","张雅萍","刘上荣","童明辉","李宜俊","黄名伦","傅国妃","陈盈花","蔡建德","李淑梅","许名侑","倪协菁","邱淑惠","周小珮","倪昌萍","吴婉菁","刘美玲","吕奕君","张庭惟","李明治","王丽芬","林俊雅","陈雅如","倪富爱","李威伦","王嘉怡","蔡宗毅","黄山蓁","张诗哲","黄凯婷","文诗香","简少霞","葛彦廷","蔡原士","白家慧","黄心怡","王木盛","施纬原","张家智","李彦志","陈玉婷","王信来","郑玲德","陈伟诚","苏建添","司俊宏","陈品旺","罗力惟","林玉珊","李慧君","傅欣怡","杨奇士","林雅婷","张贤坚","王朝佩","吴昀春","李政映","刘右峰","林志颖","胡铭育","黄钰婷","王淑真","林勇意","谢玲伶","陈柔裕","李玮婷","林家琴","陈怡璇","姚兰妤","陈致威","那镇宇","黄柏义","郑念宝","任莉婷","张俊玮","吴雨绍","郑佑瑶","杨羽福","蔡明均","徐意学","张雯坚","姜季亚","陈伟茹","杨雯泰","陈健白","林国苹","崔巧娟","陈雅萍","张美淑","吴梅育","陈美君","陈怡如","陈志玉","黄任靖","蔡舒婷","张文贤","谢彦廷","许惠贤","邓秀芬","袁芳仪","刘星峰","游政勋","王雅萍","张惠义","赵兰紫","卢雨行","陈雅婷","鞠彦宇","黄志平","谢美珍","孙志豪","许美玲","刘千慧","林国舜","吴建秀","苏俊谚","李志伟","郑俊毅","蓝绍良","吴家铭","陈郁雯","江慈舜","张凯玲","蔡美玲","许姿莹","林美华","郭玟旺","余兆美","王力璇","罗振玮","赖怡君","许怡菁","李宜威","吴懿珮","林奕蓁","刘志轩","林坚岳","温怡菁","郑洁娟","陈淑君","吴佳琪","蔡玉芳","蓝裕中","许毅雪","侯雅玲","王珍俐","谢文宇","周惠敏","谢文泉","张信韦","陈嘉琪","王俊贤","汪筱冰","杨志瑞","李珮喜","林雅婷","林羽泰","邱雅筑","李采霖","杨雅雨","黄怡伶","白峻豪","黄桂雪","林以合","叶凯钧","陈嘉萱","陈亦谕","陈茂尧","方文杰","李政璇","王嘉维","林左祥","刘竣柔","陈小薇","林宜铭","黄筱杰","陈志文","赵忠君","赖静宜","杨俊安","吴柏云","黄嘉琪","罗雅如","林馨仪","王嘉睿","郑宗璇","张怡君","杨舒东","张奇妹","李欢任","赵明慧","吴坤娥","蔡欣成","周定升","刘明秀","韩可玮","王钰竹","陈毅婷","彭丽卿","郭勇尧","丁静怡","刘上启","郭冠翰","罗靖欣","李怡慈","郑家贤","邓芸鸿","谢心湖","张博琇","张朝志","陈姿吟","陈行嘉","李威亚","黄勇志","廖淑玲","朱嘉玲","刘怡辰","张维青","李威文","吴婷婷","韩仁杰","张真心","蔡宥木","何怡君","萧协吉","林宜欣","宋智翔","李珮民","李彦霖","吴姵仪","徐梦财","陈淑芬","杜巧莹","吴勋妃","杨柏豪","刘惟恭","谢海尧","白可欣","李之升","黄世豪","王素玟","蔡明恭","张毓依","陈静昌","赵静怡","蓝宏儒","王志纬","王雅婷","郭建安","王明恭"]#----上面这句建立一个名为name的列表,包含所有人的姓名作为列表成员。 n=choice(name)   #----使用choice函数从name列表中随机返回一个姓名赋值给ncity =["成都市","广安市","德阳市","乐山市","巴中市","内江市","宜宾市","南充市","绵阳市","眉山市","遂宁市","雅安市","阆中市","攀枝花市","广汉市","绵竹市","万源市","华蓥市","江油市","西昌市","彭州市","简阳市","崇州市","什邡市","峨眉山市","邛崃市","双流县"]#-----上面这句建立一个名为city的列表,包含所有城市的名称作为列表成员。 c=choice(city)   #----使用choice函数从city列表中随机返回一个城市名赋值给csex=[0,1]        #---建立一个含0,1成员的列表作为性别区分sex1=choice(sex) #---从sex列表中随机返回一个值(0或者1)赋值给变量sex1s=randint(24000,600000)#----使用randint函数产生一个24000至600000之间的随机数作为人员收入赋值给变量sage=randint(18,65)     #----使用randint函数产生一个18至65之间的随机数作为年龄赋值给变量agepeople={"姓名":n,"城市":c,"年龄":age,"收入":s,"性别":sex1,"配对目标":c+','+str(s)+','+str(1-sex1)}#----上面这句是根据前面随机产生的姓名、城市名、性别、年龄、收入等数据生成一个字典,#----比如{'姓名': '陈怡如', '城市': '绵阳市', '年龄': 30, '收入': 175849, '性别': 0, '配对目标': '绵阳市,175849,1'}  #----字典最后一项“配对目标”:后面是含城市名+收入+性别的一个以逗号分隔的整体字符串。用逗号隔开是为了后面用split函数进行分隔成列表成员。以方便比对。             #----1-sex1表示要配对的性别要刚好相反。用str(1-sex1)把结果字符串化是为了字符串相加,形成一个字符串整体,方便后面使用。xxx.append(people)#把上一句生成的字典用append函数追加到第二行代码的空列表xxx中。把该字典作为列表的一个成员
#print(xxx)#----该语句可以显示xxx列表的所有字典成员。
#--上面的每一次循环生成一个随机的字典添加到xxx的列表中作为列表成员。循环1000次后,说明列表中添加了1000个字典成员。#下面开始配对程序,把xxx列表进行双循环比对。
total = 0            #---统计配对成功的人数初始值为0赋值给total
for i in xxx:        #---以列表xxx中的第一个成员(字典)到最后一个成员(字典)作为基础数据,在下面的内层循环中进行配对比较for j in xxx:    #---把列表xxx中的所有成员(字典)分别与上面一层循环中的基础数据进行比对if j == i:   #---如果内外循环比对的列表成员(字典)一致。continue #---自动忽略本轮内循环的剩余语句,跳转到下一轮内循环,用下一个(字典)成员继续比对else:        #---否则、即:如果列表成员(字典)不一致if i["配对目标"].split(",")[0] == j["城市"] and int(i["配对目标"].split(",")[1])-int(j["收入"])<=10000 and int(i["配对目标"].split(",")[2]) == j["性别"] :#----i["配对目标"]表示字典里面“配对目标”冒号后面的字符串,比如上例'绵阳市,175849,1'#----i["配对目标"].split(",")表示把字符串按照逗号分隔生成列表,比如'绵阳市,175849,1'变成["绵阳市","175849","1"]#----i["配对目标"].split(",")[0]表示取第一个成员。比如["绵阳市","175849","1"]取第一个成员为“绵阳市”#----int(i["配对目标"].split(",")[1])表示取第二个成员,且变成整型数据。比如["绵阳市","175849","1"]取第二个成员为“175849”,用int()函数把它变为175849#----int(i["配对目标"].split(",")[2])表示取第三个成员,且变成整型数据。比如["绵阳市","175849","1"]取第三个成员为“1”,用int()函数把它变为数字1#----把外循环中的基础数据和内循环中数据进行比较,如果满足多项条件,程序用and把每个比较连接在一起print("姓名:{}与姓名:{}配对成功".format(i["姓名"],j["姓名"]))#----用格式语言{}显示配对成功的人名信息total +=1     #----统计成功人数加1个break         #----#跳出此次内循环。避免一个人配对成功几个人。即每个人只有一次配对成功的机会。
print("%d配对成功"%total)#用格式语言%d显示成功的人数。'''运行结果如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201129005831847.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUyNjQyMTgz,size_16,color_FFFFFF,t_70#pic_center)

python学习之——假人配对相关推荐

  1. Python学习-假人和配对

    这次写一个生成假人以及假人配对的代码吧. 1.导入函数库 导入random, choices, randint这三个函数库来达到随机生成假人,随机选择数据的目的. from random import ...

  2. Python学习:数据类型转换的方法教程

    1.type() 函数 使用 type() 函数可以查看数据类型. 示例: >>> type(123) <class 'int'> >>> type(1 ...

  3. pygame是python的一个库吗,python学习pygame,,基本库导入impor

    python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...

  4. python科学计数法转换_对比Python学习Go 基本数据结构

    公众号文章不方便更新,可关注底部「阅读原文」博客,文章随时更新. 本篇是「对比 Python 学习 Go」[1] 系列的第三篇,本篇文章我们来看下 Go 的基本数据结构.Go 的环境搭建,可参考之前的 ...

  5. python学习------tab补全

    python学习------tab补全   python也可以进行tab键补全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/env  ...

  6. Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...

  7. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  8. 最新Python学习项目Top10!

    作者 | Mybridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项 ...

  9. 200页!分享珍藏很久的Python学习知识手册(附链接)

    这是之前入门学习Python时候的学习资料,非常全面,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左侧是目录,可以点击,右侧是对目录知识点的 ...

  10. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

最新文章

  1. Linux那些事儿 之 戏说USB(10)模型,又见模型
  2. 16:9或4:3,哪种屏幕宽高比更适合用户?
  3. 58金融产品经理董宁:互金产品设计21问
  4. 下划线_Python中下划线的5种含义
  5. ipad分屏大小怎么调整_flash怎么调整元素大小-Adobe flash统一图形大小的方法
  6. eclipse里安装SVN插件的两种方式
  7. Atitit jpql ast总结v2 t025.docx 目录 1.1. 多select字段 1 1.2. 多个and条件 (ok) 2 1.3. Select 字段函数(聚合等) 2 1.4. [
  8. JDK源码阅读调试环境搭建
  9. 零信任学习系列一——研读NIST零信任架构(正式版)
  10. Jenkins报错'Gradle build daemon disappeared unexpectedly'的问题解决
  11. #483(div.2) B. Minesweeper
  12. linux 上 gcc -m32 编译报错解决方案
  13. 获取电影天堂电视剧下载页面所有url地址
  14. 一文带你了解步进电机的相关知识:相、线、极性和步进方式
  15. Android调用uc播放器,在UC android浏览器中使用摄像头设备(WebRTC API)
  16. 设备管理器,其他设备,PCI数据捕获和信号处理控制器出现感很多未知设备感叹号,通用解决方法,以华为matebook为例
  17. python高校学生社团管理系统django项目源码介绍
  18. 1.主流的流媒体服务器FMS/wowza/red5/SRS产品对比
  19. linux 修改微秒时间,Linux系统下精确到微秒级的时间操作函数
  20. 高效偏振无关透射光栅的分析与设计

热门文章

  1. 黑色背景视频和白色背景图片变透明的方法
  2. 猴子摘香蕉问题python_[转载]猴子摘香蕉问题的状态空间表示法
  3. sshsecureshell登录Ubuntu出错,server responded “algorithm negotiation failed”
  4. Java基础 第一节 第一课
  5. 软件测试到底有多重要?
  6. iOS系统快捷指令一键打开北京健康宝个人信息扫码登记界面
  7. nonebot2插件之主持飞花令
  8. 谈到电影,我们收获了什么
  9. CCbot是什么梗?
  10. linux趋势杀毒安装目录,Linux杀毒软件(ClamAV)