gdyabc 发表于 2017-7-26 23:50

刚接触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)

gdyabc 发表于 2017-8-16 23:17

macupink 发表于 2017-8-14 14:48
4天,比我一个月都强,要我怎么学下去

兄弟,别误会我不是从零基础开始的,以前有其它语言经验,把以前的思想用python来实现罢了(当然不一定是最好的方式),写这个的时候的时候刚买了一本基础的书来看才接触python很多基础性的语法,数据类型等等最基础的还没有掌握,所以随便弄个简单的来练手,加深对这个语言的学习适应。

gdyabc 发表于 2017-7-28 20:32

zach14c 发表于 2017-7-27 08:50
应该是"4天用于练习"吧, 我也压根没看过有 Python V4的消息

对的是接触4天用于练手,先简单了解下基础用于,可能是标题没有表达清楚,误导了大家

CrackQuan 发表于 2017-7-27 00:21

楼住加油!!!!!!!

chen4321 发表于 2017-7-27 07:29

python4什么鬼,有更新真快?

davidkane 发表于 2017-7-27 08:05

同学python 学习一下

zach14c 发表于 2017-7-27 08:50

chen4321 发表于 2017-7-27 07:29
python4什么鬼,有更新真快?

应该是"4天用于练习"吧, 我也压根没看过有 Python V4的消息

iole 发表于 2017-7-27 10:06

看来是有经验的小师虎~{:1_893:}

just4pub 发表于 2017-7-27 11:10

楼住加油!!!!!

Allen7 发表于 2017-7-27 11:36

刚接触python没几天,进来学习,楼主加油

boyanuir 发表于 2017-7-27 13:17

试过 了ID_Data.txt 编码是GBK的,需要其他编码形式的自己可以转化,我在自己机子上,将ID_Data.txt转化为utf_8后,还是可以运行的

netCheney 发表于 2017-7-27 14:51

python4?!楼主穿越了吗?My God!
页: [1] 2
查看完整版本: 刚接触Python-4天用于练手的一小段代码