zoukankan      html  css  js  c++  java
  • 身份证类

    一、身份证号处理

    输入一个合法的身份证号码,计算输出出生年月日、性别、年龄(不要求校验输入的合法性)

    第一种方法:

    #18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,
    #第17位代表性别,奇数为男,偶数为女。
    #datetime.datetime.now().year
    # datetime.datetiem.now().mouth
    # datetime.datetiem.now().day
    
    import datetime
    id = input()
    year = id[6:10]
    month = id[10:12]
    day = id[12:14]
    if int(id[16]) % 2 == 0:
        sex = '女'
    if int(id[16]) % 2 == 1:
        sex = '男'
    print('你出生于{}年{}月{}日'.format(year,month,day))
    print('你今年{}周岁'.format(datetime.datetime.now().year-int(year)))
    print('你的性别为{}'.format(sex))
    

    第二种方法: 

    import datetime #导入datetime库,或使用 from datatime import *
    yearnow = datetime.datetime.now().year #可用于获得当前年份
    id1 = input()  #输入身份证号
    year = id1[6:10]  #切片获得年份
    mouth = id1[10:12] #切片获得月份
    day = id1[12:14] #切片获得天数
    gender = id1[16] #切片获得性别数值 
    if eval(gender)%2 == 0:  #整除2求余数,若为0则是偶数-女,反之则为奇数-男
        gender="女"
    else:
        gender="男"
    print("你出生于{}年{}月{}日".format(year,mouth,day))
    print("你今年{}周岁".format(int(yearnow)-int(year))) #当前年份与出生年份相减的年龄
    print("你的性别为{}".format(gender))
    

     

    二、身份证号验证

    输入一个身份证号码,校验其是否是合法的身份证号码

    ls = ( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 )
    id = input()
    sum = 0
    for i in range(17):
        sum = sum + ls[i] * int(id[i])
    if str(id[17]) == 'X':
        if sum % 11 == 2:
            print('身份证号码校验为合法号码!')
        else:
            print('身份证校验位错误!')
    elif (sum % 11 + int(id[17])) % 11 == 1:
        print('身份证号码校验为合法号码!')
    else:
        print('身份证校验位错误!')
    

      

    三、校验身份证号码并输出个人信息

    输入一个身份证号码,校验其是否是合法的身份证号码,并输出该身份证的出生年月日、性别、年龄

    import datetime
    ls = ( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 )
    id = input()
    def IDcheck(id):
        sum = 0
        for i in range(17):
            sum = sum + ls[i] * int(id[i])
        if id[17] == 'X':
            if sum % 11 == 2:
                return 1
            else:
                return 0
        elif (sum % 11 + int(id[17])) % 11 == 1:
            return 1
        else:
            return 0
    
    if IDcheck(id) == 1:
        year = id[6:10]
        month = id[10:12]
        day = id[12:14]
        if int(id[16]) % 2 == 0:
            sex = '女'
        if int(id[16]) % 2 == 1:
            sex = '男'
        print('身份证号码校验为合法号码!')
        print('出生:{}年{}月{}日'.format(year, month, day))
        print('年龄:{}'.format(datetime.datetime.now().year - int(year)))
        print('性别:{}'.format(sex))
    else:
        print('身份证校验位错误!')
    

      

  • 相关阅读:
    F. The Treasure of The Segments
    D. Zigzags
    C. Binary String Reconstruction
    B. RPG Protagonist
    中国计量大学同步赛补题
    Teacher Ma专场补题
    2020ICPC上海站总结&补题
    华东202011月赛补题
    算法学习之旅——树状数组
    迷宫
  • 原文地址:https://www.cnblogs.com/cnn-ljc/p/12713281.html
Copyright © 2011-2022 走看看