本指导手册依照计算机本科专业教学大纲,根据清华大学出版社的《Python程序设计基础(第2版)》(董付国编著)编写而成。
本指导手册共计有编有6个实验,其中标有★为必做实验,标有※为选做实验。
2、编写源程序:按照实验题目的要求,在实验前完成程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。
3、完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单。
目录
实验目的:
1、熟练掌握Python解释器安装与基本用法。
2、熟练掌握使用pip命令安装Python扩展库。
3、熟悉离线安装轮子文件的方法。
实验内容:
1、安装Python解释器。
2、安装Python扩展库。
实验步骤:
2、下载Python3.5.x或Python3.6.x或Python3.7.x的最新版,至少安装其中两个。
3、在开始菜单中找到成功安装的IDLE,输入下面的代码,确保IDLE运行正常。
4、在资源管理器中进入Python安装目录的scripts子目录,然后按下Shift键,在空白处单击鼠标右键,在弹出来的菜单中选择“在此处打开命令窗口”进入命令提示符环境。如图所示:
5、使用pip命令在线安装Python扩展库numpy、pandas、scipy、matplotlib、jieba、openpyxl、pillow。安装openpyxl的命令如图所示:
7、在IDLE中使用import导入安装好的扩展库,验证是否安装成功。
1、熟练运用Python运算符。
2、熟练Python变量。
1、温度换算器(华氏度,摄氏度,开氏度)
摄氏度=(华氏度-32)/1.8
华氏度=摄氏度*1.8+32
开氏度=摄氏度+273.15
--在控制台中获取华氏度,计算摄氏度
--在控制台中获取摄氏度,计算华氏度
--在控制台中获取摄氏度,计算开氏度
2、在控制台中获取圆形的半径
计算面积(3.14*r的平方)与周长(2*3.14*r)
3、在控制台中获取一个商品单价10
在获取一个商品数量3
在获取一个金额50
计算:应该找回多少钱20
4、闰年判断:
条件1:年份能被4整除,但是不能被100整除.
条件2:年份能被400整除
在控制台中获取年份
判断是否为闰年,如果是显示true,否则显示false
5、在控制台中获取一个4位整数1234
计算每位相加和1+2+3+4-->10
参考代码:
1、
#fahrenheit=float(input("请输入华氏度:"))
#centigrade=(fahrenheit-32)/1.8
#print("摄氏度是:"+str(centigrade))
#centigrade=float(input("请输入摄氏度:"))
#fahrenheit=centigrade*1.8+32
#print("华氏度是:"+str(fahrenheit))
centigrade=float(input("请输入摄氏度:"))
kelvin=centigrade+273.15
print("开氏度是:"+str(kelvin))
2、
radius=float(input("请输入半径"))
area=3.14*radius**2
#length=2*3.14*radius#31.400000000000002
#round()函数可以四舍五入
length=round(2*3.14*radius,3)
print("面积是:"+str(area)+",周5长是:"+str(length))
3、
str_unit_price=input("请输入商品单价:")
int_unit_price=float(str_unit_price)
amount=int(input("请输入商品数量:"))
money=float(input("请输入金额:"))
result=money-int_unit_price*amount
print("应找回:"+str(result))
如果金额不足,提示还差多少钱,如果金额够,提示应找回多少钱.
--尝试:如果总价到达100元,打八折.
#总金额
total_price=int_unit_price*amount
#满足条件打折
iftotal_price>=100:
total_price/=0
#如果钱够
ifmoney>total_price:
result=money-total_price
else:
print("还差"+str(total_price-money)+"钱")
4、
year=int(input("请输入年份:"))
result=year%4==0andyear%100!=0oryear%400==0
print(result)
5、
int_number=int(input("请输入4位整数:"))
#1234
#unit01=int_number%10
#unit02=int_number//10%10#1234-->123-->3
#unit03=int_number//100%10#1234-->12-->2
#unit04=int_number//1000
#result=unit01+unit02+unit03+unit04
#print(result)
result=int_number%10
result+=int_number//10%10#1234-->123-->3
result+=int_number//100%10#1234-->12-->2
result+=int_number//1000
1、掌握Python中的列表和元组字典、集合以及其他常见数据结构的使用方法。
2、利用列表元组字典解决实际问题。
3、理解列表切片操作,理解序列解包工作原理。
1、在控制台中录入学生成绩,计算总分,最高分,最低分。
#“请输入学生总数:”
#“请输入第1个学生成绩:”
stu_count=int(input("请输入学生总数:"))
list01=[]
foriinrange(stu_count):
score=int(input("请输入第%d个学生成绩:"%(i+1)))
list01.append(score)
print("总分:%d."%(sum(list01)))
print("最高分:%d."%(max(list01)))
print("最低分:%d."%(min(list01)))
2、在控制台中录入学生姓名。
#要求:姓名不能重复
#如果录入esc,则停止录入,打印每个学生姓名.17:05
list_names=[]
whileTrue:
name=input("请输入第%d个学生姓名:"%(len(list_names)+1))
ifname=="esc":
break
#如果姓名不存在:
ifnamenotinlist_names:
list_names.append(name)
foriteminlist_names:
print(item)
3、在控制台中,获取一个字符串.
#1.打印第一字符
#2.打印最后一个字符
#3.如果是奇数,打印中间的字符串(len(字符串))
#4.打印倒数3个字符
#5.倒叙打印字符串
#str_input=input("请输入字符串:")
str_input="abcde"
print(str_input[0])
#print(str_input[-len(str_input)])
print(str_input[-1])
#print(str_input[len(str_input)-1])
iflen(str_input)%2==1:
print(str_input[len(str_input)//2])
print(str_input[-3:])
print(str_input[::-1])
4、在控制台中循环录入字符串,输入q时退出.
然后显示一个新的字符串.
#str_result=""
list_result=[]
str_input=input("请输入:")
ifstr_input=="q":
#str_result=str_result+str_input
#(1)使用列表拼接
list_result.append(str_input)
#(2)使用join合并
str_result="".join(list_result)
print(str_result)
#字符串-->列表
list01=list("abc")
list01="a-b-c".split("-")
print(list01)
5、判断字符串是否是回文:
上海自来水来自海上
奶牛产牛奶
提示:字符串翻转
str01="上海自来水来自海上"
ifstr01==str01[::-1]:
print("是回文")
print("不是回文")
6、一注彩票7个球
前六个是红球:1--33之间的数字,且不能重复.
最后一个是蓝球:1--16之间的数字
(1)在控制台中购买彩票
(2)随机产生一注彩票
importrandom
number=random.randint(1,16)
ticket=[]
#前六个红球:
whilelen(ticket)<6:
number=int(input("请输入第%d个红球号码:"%(len(ticket)+1)))
ifnumber<1ornumber>33:
print("不再范围内")
elifnumberinticket:
print("该号码已经存在")
ticket.append(number)
#蓝球:
number=int(input("请输入蓝球号码:"))
if1<=number<=16:
break#退出循环
print(ticket)#只是将列表转换为字符串再显示
#获取每个元素
#foriteminticket:
#print(item)
#一注彩票7个球
#前六个是红球:1--33之间的数字,且不能重复.
#最后一个是蓝球:1--16之间的数字
#(2)随机产生一注彩票
number=random.randint(1,33)
ifnumbernotinticket:
#排序
#ticket.sort()
#number=random.randint(1,16)
#ticket.append(number)
ticket.append(random.randint(1,16))
#需求:对列表执行范围的元素进行排序
#(1)通过切片返回新列表
temp=ticket[:6]
#(2)对新列表进行排序
temp.sort()
#(3)将新列表赋值给原列表
ticket[:6]=temp
print(ticket)
7、获取最大/最下值
list01=[34,5,6,78,9,0,5,8,88,4]
##假设第一个元素就是最大值
#max=list01[0]
##依次与后面(从第二个开始)元素进行比较
#foriinrange(1,len(list01)):
##发现更大的,则替换假设的.
#ifmax #max=list01[i] ##最后假设的就是真的最大值. #print(max) #练习2:查找最小元素 #假设第一个元素就是最大值 min=list01[0] #依次与后面(从第二个开始)元素进行比较 foriinrange(1,len(list01)): #发现更大的,则替换假设的. ifmin>list01[i]: min=list01[i] #最后假设的就是真的最大值. print(min) 8、使用range生成1--10之间的数字,存入列表list01中. #使用列表推导式,将list01中所有奇数存入list02 #将list01中所有偶数存入list03 #将list01中元素大于3的存储list04 #list01=[] #foriteminrange(1,11): #list01.append(item) list01=[itemforiteminrange(1,11)] list02=[itemforiteminlist01ifitem%2==1] list03=[itemforiteminlist01ifitem%2==0] list04=[itemforiteminlist01ifitem>3] 9、在控制台中输入月,日. #计算这是一年的第几天. #例如:3月5日 #累加1月,2月总天数,再累加3月的5天. #例如:5月10日 #累加1月,2月,3月,4月总天数,再累加5月的10天. #month=int(input("请输入月份:")) #day=int(input("请输入天:")) #day_of_month=(31,28,31,30,31,30,31,31,30,31,30,31) #result=0 ##累加前几个月 #foriinrange(month-1): #result+=day_of_month[i] ##累加当月 #result+=day month=int(input("请输入月份:")) day=int(input("请输入天:")) day_of_month=(31,28,31,30,31,30,31,31,30,31,30,31) #累加前几个月 result=sum(day_of_month[:month-1]) #累加当月 result+=day 10、在控制台中录入一个字符串 #打印这个字符串中的字符以及出现的次数. #abcdbcdb #a字符1次 #b3 #c2 #d2 str_input="abcdbcdb" #key:字符value:次数 result={} #(1)逐一判断字符,出现的次数. foriteminstr_input: #(2)如果没有统计过该字符串 ifitemnotinresult: result[item]=1 #(3)否则,次数增加 #result[item]=result[item]+1 result[item]+=1 字典,集合 11、列表变成字典 ["张三丰","无忌","赵敏"]-->{"张三丰":3,"无忌":2,"赵敏",2} list01=["张三丰","无忌","赵敏"] dict01={} foriteminlist01: dict01[item]=len(item) dic02={item:len(item)foriteminlist01} print(dic02) 12、 #["张三丰","无忌","赵敏"] #[101,102,103] #(1)根据两个列表形成一个字典:key姓名,value房间号 #(2)将字典的键与值进行翻转.即:key房间号,value姓名 list02=[101,102,102] #dict01={} #foriinrange(len(list01)): #dict01[list01[i]]=list02[i] dic02={list01[i]:list02[i]foriinrange(len(list01))} #dic03={} #forkey,valueindic02.items(): #dic03[value]=key dic03={value:keyforkey,valueindic02.items()} print(dic03) list03=[(value,key)forkey,valueindic02.items()] print(list03) 13、猜拳 规则:系统随机出拳,在控制台中循环猜测. 提示:(1)将胜利的策略存入容器 ( ("石头","剪刀"), ("剪刀","布"), ("布","石头") ) (2)将用户猜的拳与系统出拳形成一个元组 #胜利策略 wins=( #将用户猜的拳与系统出拳形成一个元组 user_input_index=int(input("请输入整数(0表示石头,1表示剪刀,2表示布):")) items=("石头","剪刀","布") user_input_item=items[user_input_index] sys_input_index=random.randint(0,2) sys_input_item=items[sys_input_index] #逻辑处理 ifuser_input_item==sys_input_item: print("平局") elif(user_input_item,sys_input_item)inwins: print("赢啦") print("输啦") #作业:实现三局两胜. 1、掌握选择和循环两种主要程序结构在Python中的实现方法 2、了解random模块中常用函数。 3、理解带else子句的循环结构执行流程。 4、理解循环语句中的break语句的作用。 1、#在控制台中输入一个整数 #如果是奇数则显示奇数否则显示偶数 number=int(input("请输入整数:")) ifnumber%2!=0: print("是奇数") print("是偶数") 2、#在控制台中输入一个年份 #如果是闰年则显示闰年否则显示平年 ifyear%4==0andyear%100!=0oryear%400==0: print("闰年") print("平年") 3、在控制台中获取一个月份 打印季节(春1--3夏4--6秋7--9冬10--12) """ month=int(input("请输入月份:")) #if1<=month<=3: #print("春天") #elif4<=month<=6: #print("夏天") #elif7<=month<=9: #print("秋天") #elif10<=month<=12: #print("冬天") #else: #print("输入有误") ifmonth<1ormonth>12: print("输入有误") elifmonth<=3: print("春天") elifmonth<=6: print("夏天") elifmonth<=9: print("秋天") print("冬天") 4、在控制台中输入一个月份,11:30 #返回该月份的天数 #135781012--->31天 #46911--->30天 #2--->28天 elifmonth==2: print("28天") elifmonth==4ormonth==6ormonth==9ormonth==11: print("30天") print("31天") 5题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: bonus1=100000*0.1 bonus2=bonus1+100000*0.500075 bonus4=bonus2+200000*0.5 bonus6=bonus4+200000*0.3 bonus10=bonus6+400000*0.15 ifi<=100000: bonus=i*0.1 elifi<=200000: bonus=bonus1+(i-100000)*0.075 elifi<=400000: bonus=bonus2+(i-200000)*0.05 elifi<=600000: bonus=bonus4+(i-400000)*0.03 elifi<=1000000: bonus=bonus6+(i-600000)*0.015 bonus=bonus10+(i-1000000)*0.01 循环结构 累加1--100之间能被3整除的整数和 #sum=0 #foriteminrange(1,100): ##如果满足条件则累加 #ifitem%3==0: #sum+=item #print(sum) sum=0 foriteminrange(1,100): #如果不满足条件则跳过 ifitem%3!=0: continue#跳过 sum+=item print(sum) 2.一个球从100m的高度落下,每次弹回原高度的一半. 总共弹起多少次(假定:最小弹起高度是0.01m) 总共走了多少米. hight=100#当前高度 count=0#计时器 distance=hight#移动的距离 #hight/2弹起来高度>0.01 whilehight/2>=0.01: #弹起来 hight/=2#高度减半 count+=1 print("第"+str(count)+"次弹起高度是:"+str(hight)) distance+=hight*2#*2累加上下距离 print(count) print(round(distance,2)) 3.(扩展)在控制台中录入一个整数,判断是否为素数. 只能被1和自身整除的数字 例如:9 判断9能否被2---8之间的数字整除 如果能,说明不是素数.3 如果都不能,说明是素数. 7 判断7能否被2---6之间的数字整除 如果能,说明不是素数 提示:循环出2到该数字-1之间的整数 在判断能否被整数 if数字%之间的整数==0: 不是素数 number=int(input("请输入整数:"))#92---8 ifnumber<2: print("不是素数") foriinrange(2,number): ifnumber%i==0: break#如果有结论了,就不需要在和后面的数字比较了 print("是素数") 4、在控制台中循环输入编码值,显示字符.直到输入负数时,退出. number=int(input("请输入编码值:")) ifnumber<0: print(chr(number)) 5、在控制台中显示120秒倒计时 #02:0001:59.......00:00 forsecondinrange(120,-1,-1): print("%02d:%02d"%(second//60,second%60)) 6、在控制台中输入一个整数,根据整数打印一个矩形 """4 **** ** number=int(input("请输入:")) #头 print("*"*number) #中间 foriinrange(number-2): print("*"+""*(number-2)+"*") #尾 1、掌握Python中函数设计的方法,尤其是参数类型中的有关特性使用。 2、理解函数默认值参数、递归函数工作原理。 1、统计一个方法的调用次数. count=0 deffun01(): globalcount fun01() 2、变量作用域: 变量起作用的范围. 练习:exercise02 #全局变量:当前.py文件内部都可访问 g01=100 #方法内部可以读取全局变量 #print(g01) #局部变量:在方法内部创建的变量,只能在方法内部使用. l01=200 #在方法内部创建了局部变量g01,没有修改全局变量g01. #g01=300 #print(g01)#300 #如果需要在方法内部,修改全局变量. globalg01 g01=300 #在局部作用域中,创建全局变量 globalg02 g02=500 print(g01)#300 print(g02)#500 3、实参传递方式 位置传参 --序列传参:可以运行时,根据某些逻辑决定传入的数据(列表). 关键字传参 --字典传参:可以运行时,根据某些逻辑决定传入的数据(字典). 形参传递方式 默认(缺省)参数:让调用者可以有选择性的传递需要的信息. 练习:exercise03 deffun01(a,b,c): print(a) print(b) print(c) #位置传参:实参与形参的位置依次对应 fun01(1,2,3) #序列传参:用*将序列拆分后与形参的位置依次对应 fun01(*[4,5,6]) #关键字传参:实参根据形参的名称进行对应 fun01(b=2,a=1,c=3) #字典传参:用**将字典拆分后与形参的名字进行对应. fun01(**{"b":20,"c":"cc","a":1.5}) #默认参数 deffun02(a=0,b=0,c=0): #不写参数,使用默认值. fun02() fun02(1) fun02(*[2,3]) #关键字传参与默认传参相结合,可以让调用者只传递自己需要的信息. fun02(b=20) fun02(**{"c":"cc"}) 4、形参传递方式 默认形参 位置形参 --星号元组形参:位置实参数量无限 命名关键字形参:要求必须使用关键字实参 --双星号字典形参:关键字实参数量无限 学习目标:会调用其他人写的函数. 练习:exercise04 #位置形参 pass #星号元组形参 deffun02(*args): #对于方法内部而言,就是元组 #对于调用者而言,可以传递数量无限的位置实参. print(args) #fun02() #fun02(1) #fun02(1,2,3,4) #命名关键字形参:强制实参使用关键字传递. #a,b是命名关键字形参 deffun03(*,a,b): #b是命名关键字形参 deffun04(*args,b): #fun03(a=1,b=2) fun04(3,44,3,b=22) #双星号字典形参 deffun05(**kwargs): #对于方法内部而言,就是字典, #对于调用者而言,可以传递数量无限的关键字实参. print(kwargs) fun05(a=1,b=2) #调用 deffun06(*args,**kwargs): #数量无限的位置实参,数量无限的关键字实参 fun06(1,2,3,4,5,a="a",b=1.5) deffun07(a,b,*args,c,d,**kwargs): print(d) fun07(1,2,3,4,5,d="d",c="c") fun07(1,2,3,4,5,d="d",c="c",e="ee") fun07(1,2,d="d",c="c") print(1,2,3,4,5)#12345 print(1,2,3,4,5,"#")#1#2#3#4#5 购物车程序 重构练习 dict_commodity_info={ 101:{"name":"屠龙刀","price":10000}, 102:{"name":"倚天剑","price":10000}, 103:{"name":"九阴白骨爪","price":8000}, 104:{"name":"九阳神功","price":9000}, 105:{"name":"降龙十八掌","price":8000}, 106:{"name":"乾坤大挪移","price":10000} } list_order=[] defselect_menu(): 菜单选择 item=input("1键购买,2键结算。") ifitem=="1": buying() elifitem=="2": settlement() defsettlement(): 结算 :return: print_order() total_price=get_total_price() pay(total_price) defpay(total_price): 支付 :paramtotal_price:需要支付的价格 money=float(input("总价%d元,请输入金额:"%total_price)) ifmoney>=total_price: print("购买成功,找回:%d元。"%(money-total_price)) list_order.clear() print("金额不足.") defprint_order(): 打印订单 foriteminlist_order: commodity=dict_commodity_info[item["cid"]] print("商品:%s,单价:%d,数量:%d."%(commodity["name"],commodity["price"],item["count"])) defget_total_price(): 计算总价 total_price=0 total_price+=commodity["price"]*item["count"] returntotal_price defbuying(): 购买 print_commodity() order=create_order() list_order.append(order) print("添加到购物车。") defcreate_order(): 创建订单 cid=int(input("请输入商品编号:")) ifcidindict_commodity_info: print("该商品不存在") count=int(input("请输入购买数量:")) return{"cid":cid,"count":count} defprint_commodity(): 打印商品 forkey,valueindict_commodity_info.items(): print("编号:%d,名称:%s,单价:%d。"%(key,value["name"],value["price"])) #程序入口 select_menu() 1、掌握Python中面向对象程序设计的基本方法,包括类的定义与使用、类的属性、类中的特殊方法了解如何定义一个类。 2、了解如何定义类的私有数据成员和成员,如何使用自定义类实例化对象 1.按以下要求定义类 小明体重75公斤 小明每次跑步会减肥0.5公斤 小明每次吃东西体重增加1公斤 2.按以下要求定义类 房子有户型,总面积和家具名称列表 新房子没有任何家具 家具有名称和占地面积,其中bed占地4平米,chest占地2平米,table占地1.5平米 将以上3件家具添加到房子中 打印房子时,要求输出:户型,总面积,剩余面积和家具名称列表 classHouseItem:def__init__(self,name,area):self.name=nameself.area=areadef__str__(self):return"[%s]占地面积%.2f"%(self.name,self.area)bed=HouseItem("席梦思",4)chest=HouseItem("衣柜",2)table=HouseItem("餐桌",1.5)classHouse:def__init__(self,house_type,area):self.house_type=house_typeself.area=areaself.free_area=areaself.item_list=[]def__str__(self):return("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"%(self.house_type,self.area,self.free_area,self.item_list))defadd_item(self,item):print("要添加%s"%item)ifitem.area>self.free_area:print("%s的面积太大,不能添加到房子中"%item.name)returnself.item_list.append(item.name)self.free_area-=item.areamy_home=House("两室一厅",60)my_home.add_item(bed)my_home.add_item(chest)my_home.add_item(table)print(my_home) 3.按以下要求定义类 士兵许三多有一把AK47 士兵可以开火 枪可以发射子弹 枪可以填装子弹 classGun:def__init__(self,model):self.model=modelself.bullet_count=0defadd_bullet(self,count):self.bullet_count+=countdefshoot(self):ifself.bullet_count<=0:print("没有子弹")returnself.bullet_count-=1print("%s发射子弹[%d]..."%(self.model,self.bullet_count))ak47=Gun("ak47")classSoldier:def__init__(self,name):self.name=nameself.gun=Nonedeffire(self):ifself.gunisNone:print("[%s]还没有枪"%self.name)returnself.gun.add_bullet(50)self.gun.shoot() 1、掌握文件的打开和关闭。 2、掌握文件的不同操作,如读写、重命名、删除。 1.打开D盘的txt文件,统计该文件中每一段的字符个数,并输出,段落之间以两个回车键分隔。 importos #r保存结果 r={} num=1 foriinpaper: r[num]=len(i) num=num+1 f.close() #range(1,num)是不包含num的 forkeyinrange(1,num): print("第%s自然段:共有%d个字\n"%(key,r[key])) 2.假如E盘中有一个多级目录,统计出每层目录下的文件个数。 dir_count=0 file_count=0 forroot,dirs,filenamesinos.walk(file_path): fordirindirs: dir_count+=1 forfileinfilenames: file_count+=1 1.读入“身份证号.txt”,然后打印出来。注意:是否多打了一行,为什么? 2.读入“身份证号.txt”,然后存储到“身份证号_backup.txt”。注意:行尾要加"\n"。 3.读入“身份证号.txt”,处理每一行,将把一行中的每个元素用逗号(,)连接并存成“身份证号.csv”,然后使用Excel打开。注意:行尾有没有加"\n"。 基本要求:将文件“身份证.txt”读出,然后写到“身份证.csv”。该csv文件第一行各列要分别设置列名。最后使用Excel打开该文件。 要求1:使用程序在文件的最后1行写入数据,共8列,如下所示"人数x平均年龄y男数量a女数量b" 要求2:使用程序统计出每个省的人数,按人数降序排列,并写入csv文件。每行一个省份信息。要求3:观察"身份证.txt",发现里面每个人的年龄与实际年龄不符合(当年日期-出生日期)。将年龄更正,并写入csv文件。 彭子昂330226196605054190男48浙江省宁波市宁海县 乔传军34080019810819327X男33安徽省安庆市安庆市 单传军320111197112301539男43江苏省南京市浦口区 雍猛飞451321197502217475男39广西壮族自治区 陈好653222196603062607女48新疆维吾尔自治区和田地区墨玉县 柏念雁210323197908197408女35辽宁省鞍山市岫岩满族自治县 凤振450600196406138776男50广西壮族自治区防城港市防城港市 井若薇340401196401108586女50安徽省淮南市市辖区 奚靖410602197509213572男39河南省鹤壁市鹤山区 平仁霞410425198309308225女31河南省平顶山市郏县 丰功成320203197206115011男42江苏省无锡市南长区 明涵蕾431227196108033146女53湖南省怀化市新晃侗族自治县