吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5429|回复: 18
收起左侧

[Python 转载] 刚接触Python-4天用于练手的一小段代码

[复制链接]
gdyabc 发表于 2017-7-26 23:50
本帖最后由 gdyabc 于 2017-7-26 23:58 编辑

[Python] 纯文本查看 复制代码
#-*- 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 = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]  #加权因子
                lstValid = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]  #校验码
                xsum = 0
                for i in range(17):
                    xsum += int(code) * lstExp  #前17位数字与权值乘积相加求合
                idx = xsum % 11  #算余数为模
                if code[17].upper() == lstValid[idx]: #第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[6:10])
    _bmonth = str(code[10:12])
    _bday = int(code[12:14])
    _today = datetime.date.today().year
    _m = int(code[16])
    if _m % 2 == 0:
        _six = '女'
    else:
        _six = '男'
    _agv = _today - int(_byear)
    print('编码: ' + code + ' | 出生年月: ' + '%s年%s月%s日' % (_byear, _bmonth, _bday) + 
          ' | 年龄: ' + str(_agv) + ' | 性别: ' + _six + ' | 地址: ' + dic[_address])

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[0]] = strtemp[1]
        f.close()
except Exception as err:
    print(err)

xID = '123456789123456789'
verifyResult = Verify_ID(xID)
print(verifyResult)

ID_Data.txt

98.96 KB, 下载次数: 24, 下载积分: 吾爱币 -1 CB

地址数据

免费评分

参与人数 3吾爱币 +3 热心值 +2 收起 理由
书写情书 + 1 + 1 我很赞同!
CS1516 + 1 + 1 08,09年 经常搞 塞班关闭以后 都冒雨接触过```py:疯蝶
CrackQuan + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 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
看来是有经验的小师虎~
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!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 17:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表