Python Tutorial básico: Uso de Python a la función de conversión de sistema de tarjeta completa 15 de 18 ID

En este artículo se describe el uso de Python completado 15 de función de conversión de sistema de tarjetas de identificación 18, en este documento para introducir una muy detallada, con un valor de referencia para la referencia, los amigos necesidad puede referirse a la Aquí Insertar imagen Descripción
reciente trabajo sólo para limpiar un número de clientes datos relacionados con el número de identificación 15 y un convertidor de 18 bits, especialmente estudiados bajo el compartido aquí.

números de identificación que forman

Desde hablando de la conversión de tarjeta de identificación, sería necesario para entender la composición con el número. Aquí Insertar imagen Descripción
La ciudadanía se caracteriza por un número de código de combinación, entre el código de 17 dígitos y un cuerpo compuesto de un solo código de comprobación de dígitos;

El orden de izquierda a derecha: la dirección de código de seis dígitos, fecha de nacimiento código de ocho dígitos, un código de secuencia numérica de tres dígitos y el código de verificación.

código de dirección de seis dígitos: una codificación permanente objetivo del condado de residencia (ciudad, bandera, distrito) Código de división administrativa, de acuerdo con las disposiciones GB / T 2260 de.

código de ocho dígitos Fecha de nacimiento: un año de nacimiento codificación de destino, mes, día, de acuerdo con las disposiciones GB / T 7408 de. Años, sin separadores entre código de un mes, la fecha. Fecha de nacimiento como alguien 12 agosto de 1995, su fecha de nacimiento es el código 19950812.

Código de tres orden: representación en el contexto regional del mismo código electrónico que se indica, para el mismo año, el mismo mes, las personas nacidas el mismo día del número de secuencia programada, impar orden de código asignado a los hombres, las mujeres asignadas al número par.

Un código de comprobación: comprobar el código de acuerdo con ISO 7064: suma de comprobación calculada código de comprobación de 1983.MOD 11-2.

método de cálculo de suma de comprobación

1, el número de ID 17 en frente de la mediana multiplicado por diferentes coeficientes. Desde el principio hasta coeficientes XVII son: 7.910.584.216.379.105.842;

2, los resultados de estos 17 multiplicador digital y coeficientes de adición;

3, sumando y se divide por 11, el resto es para ver cuánto;

4, el resto puede tener sólo 012345678910 estos 11 dígitos. Qué se asignan al último bit del número de identificación es 1 0 X 9 8 7 6 5 4 3 2;

5, por lo anterior que si el resto es 2, X. número romano aparecerá en la primera 18 ID digital

soluciones

15 rpm 18: es decir, los seis primeros dígitos del número de identificación ID sexto ++ '19' después del código de verificación numérico +

(No me pregunte por qué este idiota más 19 ( '⊙ω⊙`) @? ¥ & El problema, por supuesto, debido a que sólo 19 personas pueden tener siglo 15 amigos número de identificación)

método de cálculo de suma de control aún más simple, estos números y los resultados de 17 dividido por la suma de los coeficientes multiplicadores el número a 11 para coincidir con el número correspondiente al resto.

Nota: El código utilicé varias variables, aquí en el desmantelamiento de explicar.

AI: indica el número de ID en el i-ésimo valor de posición digital de Wi: Wi denota un factor de peso en la i-ésima posición: 7.910.584.216.379.105.842

código de dígitos cuerpo de diecisiete ecuación de suma ponderada: S = Suma (aiwi), i = 0, ..., 16, sumando la parte delantera derecha del primer dígito 17

módulo de cálculo de Y = mod (S, 11)

Obtenidas por moldeo el código de verificación correspondiente

Y: 0 1 2 3 4 5 6 7 8 9 10

Código de comprobación: 1 0 X 9 8 7 6 5 4 3 2

OK, el análisis de casi una mirada directa en el código.

Cómo utilizar código para lograr?

# encoding: utf-8
"""
CREATED ON 19-11-05
@AUTHOR: XUSL
"""
WI = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1, ]
VI = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, ]
DEF GET_VERITY(EIGHTEEN_CARD):
  """
  :PARAM EIGHTEEN_CARD:
  :RETURN:
  """
  AI = []
  REMAINING = ''
  IF LEN(EIGHTEEN_CARD) == 18:
    EIGHTEEN_CARD = EIGHTEEN_CARD[0:-1]
  IF LEN(EIGHTEEN_CARD) == 17:
    S = 0
    FOR I IN EIGHTEEN_CARD:
      AI.APPEND(INT(I))
    FOR I IN RANGE(17):
      S = S + WI[I] * AI[I]
    REMAINING = S % 11
  RETURN 'X' IF REMAINING == 2 ELSE STR(VI[REMAINING])
DEF UP_TO_EIGHTEEN(FIFTEEN_CARD):
  """
  15位转18位
  :PARAM FIFTEEN_CARD:
  :RETURN:
  """
  EIGHTEEN_CARD = FIFTEEN_CARD[0:6] + '19' + FIFTEEN_CARD[6:15]
  RETURN EIGHTEEN_CARD + GET_VERITY(EIGHTEEN_CARD)
DEF DOWN_TO_FIFTEEN(EIGHTEEN_CARD):
  """
  18位转15位
  :PARAM EIGHTEEN_CARD:
  :RETURN:
  """
  RETURN EIGHTEEN_CARD[0:6] + EIGHTEEN_CARD[8:17]
IF __NAME__ == '__MAIN__':
  # 15位转18位
  CARD_1 = UP_TO_EIGHTEEN('632123820927051')
  PRINT(CARD_1)
  # 18位转15位
  CARD_2 = DOWN_TO_FIFTEEN('410125199908222000')
  PRINT(CARD_2)

Por supuesto, esto es sólo una pequeña función, quieren principalmente a la participación en virtud del código, si no es el mismo proceso se puede utilizar directamente.

Por último, se recomienda una muy amplia recolección de recursos de aprendizaje pitón, [haga clic para entrar] , he aquí mi colección antes de la experiencia de aprendizaje, el aprendizaje de la pluma

Recuerde, hay un rayo de experiencia corporativa, y se calmó a cero sobre la base de los datos reales del proyecto, podemos también por debajo del mensaje, no el

Comprender propuesta, vamos a estudiar juntos el progreso

resumen

Lo anterior es una pequeña serie de introducir el uso de la función de Python completa conversión del sistema de tarjetas de identificación 15 18, que esperan ayuda

Publicado 57 artículos originales · ganado elogios 25 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun11/article/details/105129095
Recomendado
Clasificación