@laowang123
2017-04-09T05:35:52.000000Z
字数 2345
阅读 459
# -*- coding:utf-8 -*-######小组信息#############组长:陈可可#成员名单:唐涛、王少青、郑琪###########题目###############'''1.检验单个身份证号码是否合法;2.从文件读取至少十个身份证号码并校验(每一行是一个身份证)3.随机生成身份证号码并校验(可选,需要使用random模板)'''###########代码################ -*- coding:utf-8 -*-IDnum=raw_input('请输入身份证号码,数字间用逗号隔开:')datas=IDnum.split(',')nums=[int(x) for x in datas]coes=[]for i in range(1,18):coe=(2**(18-i))%11coes.append(coe)s,n=0,len(coes)for j in range(n):s+=int(nums[j])*int(coes[j])rem=s%11rems=[0,1,2,3,4,5,6,7,8,9,10]codes=[1,0,x,9,8,7,6,5,4,3,2]if nums[17]==int(codes[rem]):print '合法身份证号码'else:print '非法身份证号码'第1次综合训练报告题目:校验身份证号码真伪小 组:第5组姓 名:陈可可 王少青 唐涛 郑琪专 业:安全工程班 级:安全16-4班2017 年 4 月 6 日目 录1 摘要 12 设计思路 13 运行结果 13.1 使用说明 13.2 运行结果截屏及说明 24 执行过程 25 总结 26 代码 2题目 校检身份证号码真伪1 摘要能对单个代码进行检验,并从文件读取至少十个身份证号码并校检(每一行是一个身份证号码),能随机生成身份证号码并校检。涉及到字符串的拆分、列表的添加操作和、循环和索引、if语句的使用2 设计思路从键盘录入身份证号码,数字间以逗号相隔,用split函数对其进行分割,并形成新的列表。列表中存储的是身份证号的每一位数字,用所给的求系数的函数表达式,计算出每个身份证数字对应的系数,用列表的添加操作再形成系数列表。用列表索引的方法对两个列表的对应项求乘积,再求和对11求余,用得到的余数和给定的校检码进行对比,相同的为合法身份证号码,否则为非法身份证号码。3 运行结果输入待检验的身份证号码 512304186001152123 显示非法身份证号码3.1 使用说明(1)打开程序(2)进入选择页面:随意输入一个18位身份证号码,数字间用逗号隔开(3)进行校检(4)显示结果3.2 运行结果及截图图14 执行过程1 # -*- coding:utf-8 -*-2 IDnum=raw_input('请输入身份证号码,数字间用逗号隔开:')# 从键盘输入需要检验的身份证号码3 datas=IDnum.split(',') # 将身份证号分割成单个数字,赋给变量datas4 nums=[int(x) for x in datas] # 将datas的数据转换成整数型数据,储存在列表nums中5 coes=[] # 定义空列表nums6 for i in range(1,18): # 循环变量i取值1~17,循环17次7 coe=(2**(18-i))%11 # 求第i项的系数,赋给变量coe8 coes.append(coe) # 变量coe 添加到列表coes中去9 s,n=0,len(coes) # 给s赋初值 0,n为 coes 的元素个数10 for j in range(n): # j 可取值0~1611 s+=int(nums[j])*int(coes[j]) # 将nums和coes中的元素转化为整形数据,并求其乘积和12 rem=s%11 # s对11求余13 rems=[0,1,2,3,4,5,6,7,8,9,10] # 定义余数列表14 codes=[1,0,x,9,8,7,6,5,4,3,2] # 定义校检码列表15 if nums[17]==int(codes[rem]): # 判断最后一位身份证号是否匹配校检码16 print '合法身份证号码' # 符合,输出合法17 else: # 不符合18 print '非法身份证号码' # 输出非法身份证号5 总结不能实现对身份证号码中含有x的检验,没有认识到列表中的数据类型是字符串,使得在求乘积的时候出错,不能正确的求出余数。两个列表循环的方法,即检索法和zip,不会运用,导致两个列表的求各项乘积和的过程中出现很多问题6 代码评分统计(1、不带括号的红字根据实际情况修改,带括号的红字可以删除!)表1 安全16-1班 第1小组 第1次综合训练(被投票情况)序号 姓名 班级 投票 评论1 张三 安全16-2 B xxx2指导教师投票及评论 B xxx表2 安全16-1班 第1小组 第1次综合训练(得分情况)(a)李四投票及得分第x1组 老师评分 第x2组 老师评分 第x3组 老师评分 得分(对x1组投票) (对x1组投票) (对x2组投票) (对x2组投票) (对x3组投票) (对x3组投票)(b)张三投票及得分第x1组 老师评分 第x2组 老师评分 第x3组 老师评分 得分(对x1组投票) (对x1组投票) (对x2组投票) (对x2组投票) (对x3组投票) (对x3组投票)(c)王五投票及得分第x1组 老师评分 第x2组 老师评分 第x3组 老师评分 得分(对x1组投票) (对x1组投票) (对x2组投票) (对x2组投票) (对x3组投票) (对x3组投票)(d)赵六投票及得分第x1组 老师评分 第x2组 老师评分 第x3组 老师评分 得分(对x1组投票) (对x1组投票) (对x2组投票) (对x2组投票) (对x3组投票) (对x3组投票)
程序执行过程:
0、程序从第19行开始执行
1、19~21行使用print输出一句名言或诗词,要使用一对单引号将诗词括起来!