刚接触Python-4天用于练手的一小段代码
本帖最后由 gdyabc 于 2017-7-26 23:58 编辑#-*- encoding:utf-8 -*-
import sys
import os
import string
import datetime
#以前一直用VB6/VB.NET现刚接触Python不到一个星期,练手先了解数据类型,编码格式,字符串处理,文件读写等初级用法.
#Python(3.5)
def Verify_ID(code):
try:
if len(code) != 18:
print(code + ' :编码位数不正确')
os._exit(0)
else:
if not code[:-1].isdigit():
print(code + ' :编码格式不正确,前17位不能包含字符必须为数字.')
os._exit(0)
else:
lstExp = #加权因子
lstValid = #校验码
xsum = 0
for i in range(17):
xsum += int(code) * lstExp#前17位数字与权值乘积相加求合
idx = xsum % 11#算余数为模
if code.upper() == lstValid: #第18位是否与校验码对应
Analysis_ID(code)
return True
else:
print(code + ' : 不符合中国大陆18位身份证.')
return False
except Exception as err:
print(err)
def Analysis_ID(code):
_address = str(code[:6])
_byear = int(code)
_bmonth = str(code)
_bday = int(code)
_today = datetime.date.today().year
_m = int(code)
if _m % 2 == 0:
_six = '女'
else:
_six = '男'
_agv = _today - int(_byear)
print('编码: ' + code + ' | 出生年月: ' + '%s年%s月%s日' % (_byear, _bmonth, _bday) +
' | 年龄: ' + str(_agv) + ' | 性别: ' + _six + ' | 地址: ' + dic)
try:
fileurl = os.getcwd() + '\\ID_Data.txt'
if not os.path.exists(fileurl):
print('Data file is missing.')
os._exit(0)
else:
dic = {}
f = open(fileurl, 'r')
strbuff = f.readlines()
for s in strbuff:
strtemp = s.strip().split(',')
dic] = strtemp
f.close()
except Exception as err:
print(err)
xID = '123456789123456789'
verifyResult = Verify_ID(xID)
print(verifyResult) macupink 发表于 2017-8-14 14:48
4天,比我一个月都强,要我怎么学下去
兄弟,别误会我不是从零基础开始的,以前有其它语言经验,把以前的思想用python来实现罢了(当然不一定是最好的方式),写这个的时候的时候刚买了一本基础的书来看才接触python很多基础性的语法,数据类型等等最基础的还没有掌握,所以随便弄个简单的来练手,加深对这个语言的学习适应。 zach14c 发表于 2017-7-27 08:50
应该是"4天用于练习"吧, 我也压根没看过有 Python V4的消息
对的是接触4天用于练手,先简单了解下基础用于,可能是标题没有表达清楚,误导了大家 楼住加油!!!!!!! python4什么鬼,有更新真快? 同学python 学习一下 chen4321 发表于 2017-7-27 07:29
python4什么鬼,有更新真快?
应该是"4天用于练习"吧, 我也压根没看过有 Python V4的消息 看来是有经验的小师虎~{:1_893:} 楼住加油!!!!! 刚接触python没几天,进来学习,楼主加油 试过 了ID_Data.txt 编码是GBK的,需要其他编码形式的自己可以转化,我在自己机子上,将ID_Data.txt转化为utf_8后,还是可以运行的 python4?!楼主穿越了吗?My God!
页:
[1]
2