小申想設(shè)計(jì)一個(gè)程序,利用身份證號(hào)統(tǒng)計(jì)班級(jí)成年學(xué)生數(shù)量。通過查閱資料,小申了解到18位身份證號(hào)碼從左至右依次為:6位數(shù)字地址碼,8位數(shù)字出生日期碼,3位數(shù)字順序碼和1位校驗(yàn)碼。
示例:身份證號(hào)310101201010310640,其中201010為出生年月。
請(qǐng)根據(jù)以上情境回答以下問題。
(1)身份證號(hào)碼的校驗(yàn)碼位可能出現(xiàn)字母“X”,存儲(chǔ)身份證號(hào)碼的數(shù)據(jù)類型應(yīng)為是
B
B
。
A.int
B.str
C.float
D.bool
(2)如果使用變量D存儲(chǔ)了某一身份證號(hào),需要編程截取身份證號(hào)碼中包含的出生日期,輸出格式如下:您的出生日期為:xxxx年xx月。請(qǐng)將以下代碼補(bǔ)充完整 D
D
。
1D=“31012320060712****“ print(“您的出生日期為:“,ID[①_____],“年“,ID[10:12],“月“) |
A.7:10
B.7:11
C.6:9
D.6:10
(3)如果使用變量D存儲(chǔ)了某一身份證號(hào),需要識(shí)別持有該身份證人員的性別(身份證號(hào)的倒數(shù)第二位表示性別,男單女雙),請(qǐng)將以下代碼補(bǔ)充完整:
ID=“310123********9040“ if int(ID[16])②%2==1 %2==1 : print(“性別為男“) else: print(“性別為女“) |
(4)如果已通過算法截取某一身份證的出生年月日,并將其轉(zhuǎn)換為整數(shù)類型后保存在變量birth中。請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,用于判斷該身份證月份的合法性。
birth=20061712 month=③birth%10000//100 birth%10000//100 #從birth中利用運(yùn)算符或函數(shù)拆分出月份 if 1<=month<=12: print(“日期格式正確“) else: print(④“日期格式錯(cuò)誤“ “日期格式錯(cuò)誤“ ) |
(5)小申想利用枚舉算法,統(tǒng)計(jì)出已成年學(xué)生人數(shù)。在算法中,列舉每一位同學(xué)的年齡可使用
循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
,判斷學(xué)生是否成年可使用
分支結(jié)構(gòu)
分支結(jié)構(gòu)
來實(shí)現(xiàn)。
B
B
A、分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)
B、循環(huán)結(jié)構(gòu),分支結(jié)構(gòu)
C、循環(huán)嵌套分支結(jié)構(gòu),分支結(jié)構(gòu)
D、分支嵌套循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)
(6)如果每位同學(xué)的年齡已保存在列表age[]中,下列代碼可以查看列表age中的所有數(shù)據(jù)。
for x in age:#此循環(huán)輸出age中所有數(shù)值
print(x)
請(qǐng)幫小申完成程序,統(tǒng)計(jì)成年的學(xué)生人數(shù)(法定成年年齡為18歲)。
age=[…,…,…]#列表age中保存了每位同學(xué)的年齡 num=0#num用于存儲(chǔ)成年人數(shù) #下面代碼實(shí)現(xiàn)統(tǒng)計(jì)成年學(xué)生人數(shù)并輸出:
for x in age: if x>=18: num=num+1 print(“成年學(xué)生人數(shù)是:“,num) for x in age: if x>=18: num=num+1 print(“成年學(xué)生人數(shù)是:“,num) |