一个计算身份证号码校验位的Python小程序
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])
运行程序方式如下:
#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)
忘记函数原型吧,这里不需要指明返回值类型,不需要指明形参数据类型。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam proses pemprosesan data, selalunya perlu untuk mengekstrak maklumat dalam format tertentu daripada teks. Sebagai sekeping maklumat peribadi yang agak biasa, nombor ID sering digunakan dalam pemprosesan data. Anda boleh menggunakan ungkapan biasa Python untuk mengekstrak nombor ID dengan mudah dan melakukan pengesahan tertentu padanya. Nombor kad pengenalan terdiri daripada 18 digit, termasuk wilayah, tarikh lahir, kod semak dan maklumat lain dalam nombor kad pengenalan. Dalam Python, kita boleh menggunakan fungsi ekspresi biasa modul semula untuk mengekstrak nombor ID. kepala

Nombor ID dan nombor pasport adalah nombor dokumen biasa dalam kehidupan orang ramai. Apabila melaksanakan fungsi yang melibatkan nombor dokumen ini, selalunya perlu melakukan pengesahan format pada nombor yang dimasukkan untuk memastikan ketepatannya. Dalam PHP, ungkapan biasa boleh digunakan untuk mencapai fungsi ini Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada rentetan input dalam format nombor ID atau nombor pasport. 1. Pengesahan nombor ID Nombor ID terdiri daripada 18 digit dan digit terakhir boleh berupa huruf (kod semak adalah seperti berikut: 6 pertama).

Nombor ID ialah alat bukti identiti yang sering kita gunakan dalam kehidupan seharian kita, dan maklumat hari lahir yang terkandung di dalamnya juga sangat penting. Apabila menggunakan PHP untuk mengesahkan nombor ID, kami selalunya perlu menentukan sama ada maklumat hari lahir adalah betul. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan maklumat hari lahir nombor ID. 1. Format asas nombor ID Nombor ID ialah rentetan 18 digit dan huruf Digit terakhir mungkin nombor atau huruf, dan mungkin huruf besar atau huruf kecil. 17 digit pertama ialah pemilik kad pengenalan

Kad ID, pasport dan nombor pas Hong Kong dan Macao adalah semua sijil pengenalan peribadi yang penting Untuk memastikan keselamatan maklumat peribadi, kami perlu mengesahkan dalam sistem sama ada nombor ID yang dimasukkan oleh pengguna mematuhi format standard. Ekspresi biasa PHP ialah alat yang sangat berkuasa yang boleh mencapai tujuan ini dengan mudah. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan nombor ID, nombor pasport dan nombor pas Hong Kong dan Macao yang dimasukkan oleh pengguna. 1. Pengesahan format nombor kad pengenalan Nombor kad pengenalan ialah nombor 18 digit, dan digit terakhir mungkin nombor atau huruf X. identiti

Cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah nombor ID yang sah Nombor ID ialah pengecam unik untuk setiap warganegara China dan juga merupakan asas penting untuk mengenal pasti individu dalam semua aspek masyarakat. Dalam pemprosesan data, selalunya perlu untuk menentukan sama ada rentetan ialah nombor ID yang sah. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah nombor ID yang sah. Dalam bahasa Go, menggunakan ungkapan biasa memerlukan pengenalan pakej regexp. Berikut ialah ungkapan biasa untuk menentukan nombor ID

Dalam pembangunan harian, terdapat banyak senario di mana nombor ID perlu dipadankan. Nombor ID ialah format tetap, tetapi setiap wilayah mempunyai peraturan yang sedikit berbeza, jadi ungkapan biasa tertentu diperlukan untuk dipadankan. PHP ialah bahasa pengaturcaraan yang digunakan secara meluas yang menyediakan fungsi ekspresi biasa terbina dalam dan kelas yang boleh memadankan nombor ID dengan mudah. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan nombor kad ID. Format nombor kad pengenalan Nombor kad pengenalan terdiri daripada 18 digit dan kod semakan, di mana kod semakan

Nombor kad pengenalan adalah simbol penting untuk pengenalan penduduk di negara kita, dan ia boleh digunakan untuk pengesahan identiti pada banyak kesempatan. Dalam permohonan itu, untuk memastikan kesahihan dan ketepatan nombor ID, ia perlu disahkan dengan ungkapan biasa. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan dan jantina nombor ID. 1. Komposisi dan peraturan nombor kad pengenalan Nombor kad pengenalan terdiri daripada 18 digit atau 17 digit ditambah kod semakan 1 digit. Antaranya, 17 digit pertama mewakili maklumat pemegang kad ID, dan 1 digit terakhir mewakili kod pengesahan, yang digunakan untuk mengesahkan kad ID.

Nombor kad pengenalan adalah satu-satunya sijil pengenalan untuk warganegara China, yang mengandungi maklumat identiti peribadi seperti tarikh lahir. Dalam aplikasi praktikal, kadangkala perlu untuk mengesahkan julat umur nombor ID PHP adalah cara yang sangat mudah untuk melaksanakan ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan julat umur nombor ID. 1. Struktur nombor kad pengenalan Nombor kad pengenalan terdiri daripada tujuh belas aksara dan dibahagikan kepada enam bahagian: dua digit pertama ialah kod wilayah, empat digit tengah ialah kod bandar dan daerah, dua digit seterusnya ialah kod tahun, dan dua digit seterusnya ialah kod tahun
