在Python中,有很多用途廣泛的工具庫可以幫助我們對身份證號進行真偽判斷,例如使用正則表達式匹配身份證號碼格式、使用校驗碼算法驗證身份證號是否正確等等。
import re # 導入正則表達式庫 def check_id_card(id_card): """ 判斷身份證號是否符合規范 """ # 定義正則表達式規則 pattern = '^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]$' if re.match(pattern, str(id_card)): # 如果匹配成功 return True else: return False def verify_id_card(id_card): """ 判斷身份證號是否真實有效 """ if check_id_card(id_card): # 先判斷身份證號格式是否正確 # 身份證號碼共18位,前17位乘以相應系數并相加,對乘積求和取余數,即可得到校驗碼 factor = [2, 7, 8, 9, 10, 5, 4, 6, 3, 7, 9, 10, 5, 8, 4, 2] check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] sum = 0 for i in range(17): sum += int(id_card[i]) * factor[i] mod = sum % 11 if id_card[17].upper() == check_code[mod]: # 如果校驗碼匹配成功 return True else: return False else: return False
以上代碼演示了如何通過正則表達式匹配身份證號碼的格式,并通過校驗碼算法驗證身份證號碼的真實有效性。使用這些工具,我們可以有效地判斷身份證號碼的真偽,并對真偽身份證號碼進行自動化的檢索。