Maison développement back-end Tutoriel Python 一个计算身份证号码校验位的Python小程序

一个计算身份证号码校验位的Python小程序

Jun 06, 2016 am 11:32 AM
身份证号码

S = Sum(Ai * Wi), i=0,.......16 (现在的身份证号码都是18位长,其中最后一位是校验位,15位的身份证号码好像不用了)

Ai对应身份证号码,Wi则为用于加权计算的值,它一串固定的数值,应该是根据某种规则得出的吧,用于取得最好的随机性,Wi的取之如下:

7   9 10 5
8   4   2   1
6   3   7   9
10  5   8   4   2

经过加权计算之后,得到一个S,用这个S去模11,取余值,然后查表得到校验位,这个索引表如下:

0 ----- 1
1 ----- 0
2 ----- x
3 ----- 9
4 ----- 8
5 ----- 7
6 ----- 6
7 ----- 5
8 ----- 4
9 ----- 3
10 ----- 2

程序代码如下:

import sys

Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7,9, 10, 5, 8, 4, 2]
IndexTable = { #此处实际是无需使用字典的,使用一个包含11个元素的数组便可,数组中存放
        0 : '1', #相应位置的号码,但是这也正好演示了Python高级数据结构的使用
        1 : '0',
        2 : 'x',
        3 : '9',
        4 : '8',
        5 : '7',
        6 : '6',
        7 : '5',
        8 : '4',
        9 : '3',
        10 : '2'
    }
No = []
sum = 0
if (len(sys.argv[1:][0]) != 17):
    print "error number"
    sys.exit()
for x in sys.argv[1:][0]:
        No.append(x)
for i in range(17):
    sum = sum + (int(No[i]) * Wi[i])
Index = sum % 11
print "So, your indicates parity is : %s" % (IndexTable[Index])

Copier après la connexion

运行程序方式如下:

#python getParity.py your-indentity-number-but-except-the-last-number

我的天啊,Python内置的数据结构是如此强大而易用,越来越为之而着迷啊,继续diving~

用函数封装一下,改进的代码如下:

import sys

if __name__ != '__main__':
  print "Cannot run in module"
  sys.exit()

Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7,9, 10, 5, 8, 4, 2]
IndexTable = {
    0 : '1',
    1 : '0',
    2 : 'x',
    3 : '9',
    4 : '8',
    5 : '7',
    6 : '6',
    7 : '5',
    8 : '4',
    9 : '3',
    10 : '2'
  }

def check(identity):
  if(len(identity) == 0):
    print "please input your identity number"
    sys.exit()
  elif (len(identity[0]) != 17):
    print "error number"
    sys.exit()

def calculate(identity):
  No = []
  sum = 0
  for x in identity[0]: #这个方法是很笨拙的,直接使用No = list(identity[0])便可达到同样的目的
    No.append(x)

  for i in range(17):
    sum = sum + (int(No[i]) * Wi[i])

  Index = sum % 11
  return IndexTable[Index]

check(sys.argv[1:])
result = calculate(sys.argv[1:]) 

print "So, your indicates parity is : %s" % (result)
Copier après la connexion

忘记函数原型吧,这里不需要指明返回值类型,不需要指明形参数据类型。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les expressions régulières Python pour extraire le numéro d'identification Comment utiliser les expressions régulières Python pour extraire le numéro d'identification Jun 22, 2023 am 10:35 AM

Lors du traitement des données, il est souvent nécessaire d'extraire des informations dans un format spécifique à partir d'un texte. En tant qu’information personnelle relativement courante, le numéro d’identification est souvent utilisé dans le traitement des données. L'utilisation d'expressions régulières Python peut facilement extraire le numéro d'identification et effectuer certaines vérifications. Le numéro de carte d'identité est composé de 18 chiffres, dont la région, la date de naissance, le code de contrôle et d'autres informations contenues dans le numéro de carte d'identité. En Python, nous pouvons utiliser la fonction d'expression régulière du module re pour extraire le numéro d'identification. tête

Expression régulière PHP pour vérifier si la chaîne d'entrée est au format numéro d'identification ou numéro de passeport Expression régulière PHP pour vérifier si la chaîne d'entrée est au format numéro d'identification ou numéro de passeport Jun 24, 2023 pm 12:11 PM

Le numéro d'identité et le numéro de passeport sont des numéros de documents courants dans la vie des gens. Lors de la mise en œuvre de fonctions impliquant ces numéros de documents, il est souvent nécessaire d'effectuer une vérification du format des numéros saisis pour garantir leur exactitude. En PHP, des expressions régulières peuvent être utilisées pour réaliser cette fonction. Cet article explique comment utiliser les expressions régulières PHP pour vérifier si la chaîne d'entrée est au format d'un numéro d'identification ou d'un numéro de passeport. 1. Vérification du numéro de carte d'identité Le numéro de carte d'identité est composé de 18 chiffres et le dernier chiffre peut être une lettre (code de contrôle). Son format est le suivant : les 6 premiers.

Expression régulière PHP pour vérifier les informations d'anniversaire du numéro d'identification Expression régulière PHP pour vérifier les informations d'anniversaire du numéro d'identification Jun 24, 2023 pm 02:22 PM

Le numéro d'identification est un outil de preuve d'identité que nous utilisons souvent dans notre vie quotidienne, et les informations d'anniversaire qu'il contient sont également très importantes. Lorsque nous utilisons PHP pour vérifier les numéros d'identification, nous devons souvent déterminer si les informations d'anniversaire sont correctes. Cet article explique comment utiliser les expressions régulières PHP pour vérifier les informations d'anniversaire du numéro d'identification. 1. Le format de base du numéro d'identification. Le numéro d'identification est une chaîne composée de 18 chiffres et lettres. Le dernier chiffre peut être un chiffre ou une lettre, et peut être en majuscule ou en minuscule. Les 17 premiers chiffres sont le propriétaire de la carte d'identité

Comment utiliser des expressions régulières PHP pour vérifier si la chaîne d'entrée est le bon numéro d'identification, le numéro de passeport ou le format de pass de Hong Kong et de Macao Comment utiliser des expressions régulières PHP pour vérifier si la chaîne d'entrée est le bon numéro d'identification, le numéro de passeport ou le format de pass de Hong Kong et de Macao Jun 24, 2023 am 10:36 AM

Les cartes d'identité, les passeports et les numéros de laissez-passer de Hong Kong et de Macao sont tous des certificats d'identité personnels importants. Afin de garantir la sécurité des informations personnelles, nous devons vérifier dans le système si le numéro d'identification saisi par l'utilisateur est conforme au format standard. Les expressions régulières PHP sont un outil très puissant qui peut facilement atteindre cet objectif. Cet article explique comment utiliser les expressions régulières PHP pour vérifier le numéro d'identification, le numéro de passeport et le numéro de pass de Hong Kong et de Macao saisis par l'utilisateur. 1. Vérification du format du numéro de carte d'identité Le numéro de carte d'identité est un nombre à 18 chiffres et le dernier chiffre peut être un chiffre ou la lettre X. identité

Comment utiliser des expressions régulières dans le langage Go pour déterminer si une chaîne est un numéro d'identification légal Comment utiliser des expressions régulières dans le langage Go pour déterminer si une chaîne est un numéro d'identification légal Jul 13, 2023 pm 07:55 PM

Comment utiliser des expressions régulières en langage Go pour déterminer si une chaîne est un numéro d'identification légal. Le numéro d'identification est un identifiant unique pour chaque citoyen chinois et constitue également une base importante pour identifier les individus dans tous les aspects de la société. En traitement de données, il est souvent nécessaire de déterminer si une chaîne est un numéro d'identification légal. Cet article explique comment utiliser les expressions régulières dans le langage Go pour déterminer si une chaîne est un numéro d'identification légal. En langage Go, l'utilisation d'expressions régulières nécessite l'introduction du package regexp. Ce qui suit est une expression régulière pour déterminer le numéro d'identification

Méthode d'expression régulière PHP pour vérifier la validité et le sexe du numéro d'identification Méthode d'expression régulière PHP pour vérifier la validité et le sexe du numéro d'identification Jun 24, 2023 am 09:36 AM

Le numéro de carte d’identité est un symbole important pour l’identification des résidents de notre pays et peut être utilisé à de nombreuses reprises pour vérifier l’identité. Dans l'application, afin de garantir la validité et l'exactitude du numéro d'identification, celui-ci doit être vérifié par des expressions régulières. Cet article explique comment utiliser les expressions régulières PHP pour vérifier la validité et le sexe du numéro d'identification. 1. La composition et les règles du numéro de carte d'identité Le numéro de carte d'identité est composé de 18 chiffres ou 17 chiffres plus un code de contrôle à 1 chiffre. Parmi eux, les 17 premiers chiffres représentent les informations du titulaire de la carte d'identité et le dernier chiffre représente le code de vérification, qui est utilisé pour vérifier la carte d'identité.

Pratique des expressions régulières PHP : correspondance du numéro d'identification Pratique des expressions régulières PHP : correspondance du numéro d'identification Jun 23, 2023 am 10:24 AM

Dans le développement quotidien, il existe de nombreux scénarios dans lesquels les numéros d'identification doivent correspondre. Le numéro de carte d'identité a un format fixe, mais les règles de chaque province sont légèrement différentes, donc une expression régulière spécifique est nécessaire pour correspondre. PHP est un langage de programmation largement utilisé qui fournit des fonctions et des classes d'expressions régulières intégrées pouvant facilement correspondre aux numéros d'identification. Cet article explique comment utiliser les expressions régulières PHP pour faire correspondre les numéros de carte d'identité. Format du numéro de carte d'identité Le numéro de carte d'identité se compose de 18 chiffres et d'un code de contrôle, où le code de contrôle

Expression régulière PHP pour vérifier le format du numéro d'identification Expression régulière PHP pour vérifier le format du numéro d'identification Jun 24, 2023 am 11:20 AM

Le numéro d'identification est un document d'identification très important dans nos vies. C'est également une information nécessaire que nous devons souvent remplir lors de diverses transactions commerciales. Par conséquent, lors du développement d’applications Web, il est très important de vérifier l’exactitude du numéro d’identification. En PHP, nous pouvons vérifier le format du numéro d'identification via des expressions régulières. Ci-dessous, nous présenterons en détail comment utiliser les expressions régulières pour vérifier le format du numéro d'identification. 1. Format du numéro de carte d'identité Le numéro de carte d'identité est composé de 18 chiffres et de la lettre X. Les 17 premiers d'entre eux sont

See all articles