주민등록번호 생성 테스트
14287 단어 입문
import time
import datetime
import random
from cn_areacode_201807 import cncode
def get_birth_code():
y = 1950 + random.randint(0,68)
m = random.randint(1,12)
d = 0;
if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:
d = random.randint(1,31)
elif m == 4 or m == 6 or m == 9 or m == 11:
d = random.randint(1,30)
elif m == 2:
if y%400 == 0:
d = random.randint(1,29)
elif y%100 == 0:
d = random.randint(1,28)
elif y%4 == 0:
d = random.randint(1,29)
else:
d = random.randint(1,28)
code = str(y)
if m < 10:
code += "0"
code += str(m)
if d < 10:
code += "0"
code += str(d)
return code
def get_validatation_code(in_code):
if len(in_code) < 17:
return "-1"
validator = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
sum = 0;
try:
for i in range(0,17):
bit = int(in_code[i])
sum += bit * validator[i]
except Exception as e:
print(e)
return ""
sum %= 11
code = ['1','0','X','9','8','7','6','5','4','3','2']
return code[sum]
def generate_identify_id():
random_int = random.randint(0,3217)
birth = get_birth_code()
serialno = random.randint(1,999)
identify_id = cncode[random_int]
identify_id += birth
if serialno < 10:
identify_id += "00"
elif serialno < 100:
identify_id += "0"
identify_id += str(serialno)
validate_code = get_validatation_code(identify_id)
if not validate_code:
return ""
identify_id += validate_code
return identify_id
if __name__ == "__main__":
print(generate_identify_id())
여기서 cnareacode_201807은 정부 홈페이지에서 다운로드한 2018년 7월까지의 지역 번호표이다.참조:https://github.com/wangflying/cn_identify_id
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【작업 효율화】Python으로 파일명을 일괄 변경하는 방법여러분은 대량의 텍스트 파일이나 이미지 파일의 파일명을 일괄 변경하고 싶을 때는 없습니까? 이번은 그런 「파일명을 일괄로 변경하는 방법」에 대해 해설해 갑니다. 이름을 바꿀 파일을 준비합니다. 파일은 텍스트 파일이나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.