1.代碼
def sfzAnalysis(idNum):
#檢查身份證長(zhǎng)度是否正確
if len(idNum)!=18:
raise ValueError("身份證號(hào)碼長(zhǎng)度不正確,請(qǐng)輸入一個(gè)18位的身份證號(hào)碼。")
#raise關(guān)鍵字在Python中有多種用途,主要涉及異常的拋出和錯(cuò)誤處理
#提取出生日期
year = idNum[6:10]
month = idNum[10:12]
day = idNum[12:14]
birthday = "{}年{}月{}日".format(year,month,day)
#提取性別
gender_code = int(idNum[16])
gender = "女" if gender_code % 2 ==0 else "男"
return birthday,gender
try:
idNum = input("請(qǐng)輸入您的身份證號(hào)碼:")
birthday,gender = sfzAnalysis(idNum)
print("出生日期:",birthday)
print("性別:",gender)
except ValueError as e:
print("處理身份證號(hào)碼時(shí)發(fā)生錯(cuò)誤:",e)
2.分析:
1. 我們的身份證號(hào)碼是一串18位的數(shù)字,其中包含了許多關(guān)于持有人身份的信息,比如出生日期和性別。前6位是地區(qū)碼,接下來的8位是出生日期,然后是順序碼和性別碼,
最后一位是校驗(yàn)碼。性別由倒數(shù)第二位表示,奇數(shù)為男,偶數(shù)為女。
2.解析身份證號(hào)碼中的出生日期,出生日期位于身份證的第7位到第14位,格式為YYYYMMDD。例如,如果身份證號(hào)碼的這部分?jǐn)?shù)字是19900101,則表示持有人的出生日期為1990年1月1日。
?3.解析身份證號(hào)碼中的性別,性別由身份證的倒數(shù)第二位(第17位)決定,如果這一位是奇數(shù),則持有人為男性;如果是偶數(shù),則為女性。
?3.擴(kuò)展
1.在Python中,try語句用來捕獲和處理在執(zhí)行代碼塊時(shí)可能發(fā)生的異常。的基本結(jié)構(gòu)如下:
try:
? ? # 嘗試執(zhí)行的代碼塊
except 異常類型:
? ? # 如果發(fā)生異常,則執(zhí)行這里的代碼
finally:
? ? # 無論是否發(fā)生異常,都會(huì)執(zhí)行這里的代碼(可選)(1.)try 塊:在這個(gè)塊中的代碼是你希望正常執(zhí)行的代碼。如果在這個(gè)塊中的代碼引發(fā)了異常,執(zhí)行將立即跳到 except 塊(如果有的話)。
(2.)except 塊:這個(gè)塊用于捕獲和處理異常。except 關(guān)鍵字后面跟著你想要捕獲的異常類型。如果 try 塊中的代碼引發(fā)了指定的異常類型,則執(zhí)行 except 塊中的代碼。你可以捕獲多個(gè)不同的異常類型,每個(gè)類型對(duì)應(yīng)一個(gè) except 子句。
(3.)finally 塊(可選):這個(gè)塊中的代碼無論是否發(fā)生異常都會(huì)執(zhí)行。這適用于清理代碼,比如關(guān)閉文件或釋放資源。finally 塊在 except 塊之后執(zhí)行,即使有 return、continue 或 break 語句。2.在Python中,raise關(guān)鍵字用于主動(dòng)拋出一個(gè)異常。當(dāng)你在程序中檢測(cè)到某個(gè)錯(cuò)誤條件時(shí),可以使用raise來立即停止程序的執(zhí)行,并拋出一個(gè)異常,這樣可以避免程序繼續(xù)運(yùn)行可能導(dǎo)致更嚴(yán)重的問題。
(1.)raise關(guān)鍵字是必須的,因?yàn)樗糜谥鲃?dòng)拋出異常,而不是讓程序默默地處理錯(cuò)誤或者給出一個(gè)錯(cuò)誤提示。
(2.)ValueError是用來指定拋出的異常類型,它是一個(gè)內(nèi)置的異常類型,表示“值錯(cuò)誤”。如果你認(rèn)為其他類型的異常更適合,比如IndexError或TypeError,你可以更改它。但是,你需要確保使用的異常類型與你想要表達(dá)的錯(cuò)誤情況相匹配。3.Python中使用format方法對(duì)字符串進(jìn)行格式化的一個(gè)例子。文章來源:http://www.zghlxwxcb.cn/news/detail-843070.html
(1.){} 是一個(gè)占位符,用于在格式化字符串中插入變量值。
(2.)format 是一個(gè)內(nèi)置函數(shù),用于將格式化的字符串與變量值結(jié)合起來。它接受一個(gè)或多個(gè)變量,并根據(jù)占位符的位置將這些變量值插入到字符串中。文章來源地址http://www.zghlxwxcb.cn/news/detail-843070.html
到了這里,關(guān)于python提取身份證中的生日和性別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!