問題:根據一個手機號的前7位來查詢號碼歸屬地
代碼:
string = """5582|1860101|010|北京市|北京聯通GSM卡
5583|1860100|010|北京市|北京聯通GSM卡
5584|1368141|010|北京市|北京移動神州行卡
5585|1860111|010|北京市|北京聯通GSM卡
5586|1358198|010|北京市|北京移動動感地帶卡
5587|1361139|010|北京市|北京移動預付費卡
5588|1361138|010|北京市|北京移動神州行卡
5591|1360110|010|北京市|北京移動全球通卡
5748|1364110|010|北京市|北京移動神州行卡
10186|1581584|020|廣東省廣州市|廣東移動全球通卡
15046|1391897|021|上海市|上海移動全球通卡
17250|1502207|022|天津市|天津移動全球通卡
21137|1345272|023|重慶市萬州|重慶移動大衆卡
22700|1347812|024|遼寧省瀋陽市|遼寧移動大衆卡
24256|1377065|025|江蘇省南京市|江蘇移動全球通卡
26360|1898606|027|湖北省武漢市|湖北電信CDMA卡
28709|1860802|028|四川省成都市|四川聯通GSM卡
30641|1552961|029|陝西省西安市|陝西聯通GSM卡
31700|1563007|0310|河北省邯鄲市|河北聯通GSM卡
33360|1583396|0311|河北省石家莊市|河北移動全球通卡
34825|1508122|0312|河北省保定市|河北移動全球通卡
35363|1551235|0313|河北省張家口|河北聯通GSM卡
37700|1331326|0316|河北省廊坊市|河北電信CDMA卡
43500|1350358|0358|山西省呂梁市|山西移動全球通卡
43908|1553625|0359|山西省運城市|山西聯通GSM卡
44521|1335360|0370|河南省商丘市|河南電信CDMA卡
50078|1509369|0378|河南省開封市|河南移動全球通卡
53603|1583981|0398|河南省三門峽|河南移動全球通卡
53916|1335897|0410|遼寧省鐵嶺市|遼寧電信CDMA卡
55248|1554254|0411|遼寧省大連市|遼寧聯通GSM卡
58618|1374272|0427|遼寧省盤錦市|遼寧移動全球通卡
58932|1554183|0429|遼寧省葫蘆島|遼寧聯通GSM卡
60268|1340475|0431|吉林省長春市|吉林移動大衆卡"""
# 解析這個字符串,得到一個字典,鍵是手機號的前7位,值是歸屬地
# 將字符串按照換行符進行切割
lt = string.splitlines()
# print(lt)
# 定義一個字符串,用來保存要提取的信息
info = {}
# 遍歷這個列表,依次處理每一行字符串
for line in lt:
# '5582|1860101|010|北京市|北京聯通GSM卡'
# 將字符串按照 | 進行切割
lt1 = line.split('|')
# print(lt1)
# 取出手機號前7位的歸屬地
phone7 = lt1[1]
# 獲取歸屬地信息
area = lt1[-1]
info[phone7] = area
# print(info)
print('歡迎使用歸屬地查詢')
print('按q退出該查詢')
while 1:
phone = input ('請輸入你要查詢的電話號碼-')
if phone == 'q':
break
# print(phone7)
if len(phone) != 11:
print('輸入的手機號碼不正確,請重新輸入')
continue
# 得到手機號的前七位
# 判斷字典裏面有沒有這個phone7,有的話才能查詢的到
if phone7 in info:
print('歸屬地位--%s' %info[phone7])
else:
print('查無此號碼,請重新輸入')