版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文件讀寫-查詢身份證歸屬地任務(wù)描述
居民身份證是用于證明持有人身份的一種特定證件,由身份證號(hào)碼唯一標(biāo)識(shí)。在我國(guó)身份證號(hào)碼由十七位本體碼數(shù)字和一位校驗(yàn)碼數(shù)字組成,其中前六位數(shù)字為地址碼。地址碼標(biāo)識(shí)了編碼對(duì)象常住戶口所在縣的行政區(qū)劃代碼,通過(guò)身份證號(hào)碼的前六位便可以確定持有人的常住戶口歸屬地。
本任務(wù)要求編寫程序,實(shí)現(xiàn)根據(jù)地址碼對(duì)照表和身份證號(hào)碼查詢居民常住戶口歸屬地的功能。文件的讀與寫01程序運(yùn)行過(guò)程中除了可以使用變量來(lái)保存外,還可以使用文件來(lái)保存。而且文件既可以保存大量數(shù)據(jù),又可以永久保存數(shù)據(jù)。文件,想必大多數(shù)都熟悉,就是計(jì)算機(jī)中由操作系統(tǒng)管理的具有名字的存儲(chǔ)區(qū)域。文件是Python中的一個(gè)非常重要概念,與我們平時(shí)接觸的計(jì)算機(jī)文件一樣,Python中的文件包括txt、office、pdf等內(nèi)容。
文件概念文件是指存儲(chǔ)在外部介質(zhì)中的數(shù)據(jù)集合。文件既可以保存大量數(shù)據(jù),又可以永久保存數(shù)據(jù)。文件是數(shù)據(jù)的集合。文件主要分為兩個(gè)類型:文本文件和二進(jìn)制文件。文本文件由單一特定編碼的字符組成,如UTF-8編碼,本質(zhì)上可以將文本文件看作是存儲(chǔ)在磁盤上的長(zhǎng)字符串。大部分文本文件都可以通過(guò)文本編輯軟件或文字處理軟件創(chuàng)建、修改和閱讀。二進(jìn)制文件直接由0、1組成,文件內(nèi)部的數(shù)據(jù)組織格式與文件用途有關(guān),例如png格式的圖片文件、avi格式的視頻文件。二進(jìn)制文件與文本文件最主要的區(qū)別在于是否有統(tǒng)一的字符編碼。
文件打開(kāi)Python中文件的使用與其他語(yǔ)言一樣,也是打開(kāi)→讀寫→關(guān)閉,關(guān)閉的目的是為保證文件中數(shù)據(jù)的安全。open()函數(shù)用于打開(kāi)文件,該函數(shù)調(diào)用成功會(huì)返回一個(gè)文件對(duì)象(文件句柄)。open(file,mode='r',encoding=None)這里:file:表示待打開(kāi)文件的文件名。mode:表示文件的打開(kāi)模式。
encoding:表示文件的編碼格式。
文件打開(kāi)常用的文件打開(kāi)模式有r、w、a、b、+,這些模式的含義分別如下:文件打開(kāi)模式含義r以只讀的方式打開(kāi)文件,默認(rèn)值。w以只寫的方式打開(kāi)文件。a以追加的方式打開(kāi)文件。b以二進(jìn)制方式打開(kāi)文件。+以更新的方式打開(kāi)文件。
文件關(guān)閉close()方法用于關(guān)閉文件,該方法沒(méi)有參數(shù),直接調(diào)用即可。文件對(duì)象.close()譬如:f1.close()f2.close()
文件讀文件對(duì)象.read([size])參數(shù)size表示設(shè)置的讀取數(shù)據(jù)的字節(jié)數(shù),若該參數(shù)缺省,則一次讀取指定文件中的所有數(shù)據(jù)。read()方法可以從指定文件中讀取指定數(shù)據(jù),其語(yǔ)法格式如下:譬如:f=open("端午節(jié).txt",'r',encoding='utf-8‘)f.read(4)f.read(5)f.read()
文件寫通過(guò)write()方法向文件中寫入數(shù)據(jù),其語(yǔ)法格式如下。文件對(duì)象.write(str)參數(shù)str表示要寫入的字符串。若字符串寫入成功,write()方法返回本次寫入文件的長(zhǎng)度。譬如:f=open(“abc.txt”,’w’)f.write(“Istudypython.”)任務(wù)實(shí)現(xiàn)—識(shí)別單詞02
根據(jù)題意,身份證的查詢功能是基于身份證碼值實(shí)現(xiàn)的,這些碼值都保存在“身份證碼值對(duì)照表.txt”文件中,該文件的內(nèi)容如下圖所示。
任務(wù)分析從上表中數(shù)據(jù)可知,文件中的數(shù)據(jù)結(jié)構(gòu)類似于包含多個(gè)鍵值對(duì)的字典,其中每個(gè)鍵值對(duì)的鍵為身份證的地址碼,值為地址碼對(duì)應(yīng)的歸屬地。實(shí)現(xiàn)功能步驟如下:1.讀取“身份證碼值對(duì)照表.txt”文件中的數(shù)據(jù),并將讀取后的數(shù)據(jù)通過(guò)load()方法解碼轉(zhuǎn)換為Python中的字典2.將用戶輸入的內(nèi)容作為鍵來(lái)獲取字典中的值,從而實(shí)現(xiàn)通過(guò)地址碼查詢居民歸屬地的功能。
任務(wù)分析程序代碼#查詢身份證歸屬地importjsonf=open("身份證碼值對(duì)照表.txt",'r',encoding='utf-8')content=f.read()content_dict=json.loads(content)#轉(zhuǎn)換為字典類型address=input('請(qǐng)輸入身份證前6位(地址碼):')forkey,valincontent_dict.items():ifkey==address:print(val)f.close()
程序總結(jié)上述代碼中,首先導(dǎo)入將字符串轉(zhuǎn)換為字典功能的模塊json,然后打開(kāi)“身份證碼值對(duì)照表.txt”文件讀取數(shù)據(jù),并調(diào)用loads()方法將字符串類型的數(shù)據(jù)轉(zhuǎn)換為字典。最后接收用戶輸入的身份證前6位數(shù)字,即地址碼,將其與字典中的鍵逐個(gè)對(duì)比,若相等則獲取字典中該鍵對(duì)應(yīng)的值,否則忽略不計(jì),結(jié)束前關(guān)閉打開(kāi)的文件。任務(wù)總結(jié)文件是指存儲(chǔ)在外部介質(zhì)中的數(shù)據(jù)集合。文件既可以保存大量數(shù)據(jù),又可以永久保存數(shù)據(jù)。文件是數(shù)據(jù)的集合。Python是通過(guò)內(nèi)置的open()函數(shù)打開(kāi)一個(gè)文件,并實(shí)現(xiàn)該文件與一個(gè)程序變量的關(guān)聯(lián)。close()方法用于關(guān)閉文件,該方法沒(méi)有參數(shù),直接調(diào)用即可。read()方法可以從指定文件中讀取指定數(shù)據(jù),write()方法可以向文件中寫入數(shù)據(jù)。謝謝觀看格式數(shù)據(jù)-輸出楊輝三角形任務(wù)描述楊輝三角形,又稱賈憲三角形、帕斯卡三角形,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。下圖為楊輝三角的前7行,由于位于楊輝三角形兩個(gè)腰上的數(shù)都為1,其他位置上的數(shù)等于它肩上兩個(gè)數(shù)之和,基于楊輝三角形的這個(gè)特點(diǎn),本任務(wù)擬采用二維數(shù)組輸出楊輝三角形。數(shù)據(jù)格式化01
從廣義上講,維度是與事物“有聯(lián)系”的概念的數(shù)量,根據(jù)“有聯(lián)系”的概念的數(shù)量,事物可分為不同維度。譬如:與線有聯(lián)系的概念為長(zhǎng)度,因此線為一維事物;與長(zhǎng)方形面積有關(guān)的概念為長(zhǎng)度和寬度,因此面積為二維事物;與長(zhǎng)方體體積有聯(lián)系的概念為長(zhǎng)度、寬度和高度,因此體積為三維事物。
數(shù)據(jù)維度
數(shù)據(jù)維度即事物“有聯(lián)系”的概念的數(shù)量,它可分為多種不同維度。譬如:一維、二維、三維、四維、五維……根據(jù)組織數(shù)據(jù)時(shí)與數(shù)據(jù)有聯(lián)系的參數(shù)的數(shù)量,數(shù)據(jù)可分為一維數(shù)據(jù)、二維數(shù)據(jù)和多維數(shù)據(jù)。一維數(shù)據(jù):具有對(duì)等關(guān)系的一組線性數(shù)據(jù),如:一維列表、一維元組、集合等。二維數(shù)據(jù):二維數(shù)據(jù)關(guān)聯(lián)參數(shù)的數(shù)量為2,這類數(shù)據(jù)對(duì)應(yīng)到數(shù)學(xué)上就是矩陣和行列式,也即關(guān)系數(shù)據(jù)表,如:矩陣、二維數(shù)組、二維列表、二維元組等。多維數(shù)據(jù)在網(wǎng)絡(luò)應(yīng)用中非常常見(jiàn),計(jì)算機(jī)中常見(jiàn)的多維數(shù)據(jù)格式有HTML、JSON等。如上節(jié)課的身份證碼值對(duì)照表就是典型的JSON格式。
數(shù)據(jù)存儲(chǔ)程序中與數(shù)據(jù)相關(guān)的操作分為數(shù)據(jù)的存儲(chǔ)與讀寫。數(shù)據(jù)通常存儲(chǔ)在文件中,為了方便后續(xù)的讀寫操作,數(shù)據(jù)通常需要按照約定的組織方式進(jìn)行存儲(chǔ)。一維數(shù)據(jù)呈線性排列,一般用特殊字符分隔,譬如:空格、逗號(hào)、&等。二維數(shù)據(jù)可視為多條一維數(shù)據(jù)的集合,當(dāng)二維數(shù)據(jù)只有一個(gè)元素時(shí),這個(gè)二維數(shù)據(jù)就是一維數(shù)據(jù)。CSV是國(guó)際上通用的一維數(shù)據(jù)和二維數(shù)據(jù)存儲(chǔ)格式。CSV廣泛應(yīng)用于不同體系結(jié)構(gòu)下網(wǎng)絡(luò)應(yīng)用程序之間表格信息的交換中,它本身沒(méi)有明確的格式標(biāo)準(zhǔn),具體標(biāo)準(zhǔn)一般由傳輸雙方協(xié)商決定。
數(shù)據(jù)讀取與寫入Windows平臺(tái)中CSV文件的后綴名為.csv,可通過(guò)OfficeExcel或記事本打開(kāi)。Python在程序中讀取.csv文件后會(huì)以二維列表形式存儲(chǔ)其中內(nèi)容。
將一維數(shù)據(jù)和二維數(shù)據(jù)寫入文件中,即按照數(shù)據(jù)的組織形式,在文件中添加新的數(shù)。
數(shù)據(jù)格式化為了直觀地表示多維數(shù)據(jù),方便組織和操作多維數(shù)據(jù),多維數(shù)據(jù)將統(tǒng)一采用鍵值對(duì)的形式進(jìn)行格式化。在網(wǎng)絡(luò)平臺(tái)上傳遞的數(shù)據(jù)大多是多維數(shù)據(jù),常見(jiàn)的數(shù)據(jù)格式就是JSON格式,它是一種輕量級(jí)的數(shù)據(jù)交換格式,本質(zhì)上是一種被格式化的字符串,易于閱讀和編寫,以及機(jī)器解析和生成。JSON以對(duì)象的形式表示數(shù)據(jù)。
JSON格式JSON格式的數(shù)據(jù)一般遵循以下語(yǔ)法規(guī)則:數(shù)據(jù)存儲(chǔ)在鍵值對(duì)(key:value)中;譬如:例如“姓名”:“張一山”。數(shù)據(jù)的字段由逗號(hào)分隔;譬如:“姓名”:“張一山”,“語(yǔ)文”:124。一個(gè)大括號(hào)保存一個(gè)JSON對(duì)象;譬如:{“姓名”:“張一山”,“語(yǔ)文”:“124”}。一個(gè)中括號(hào)保存一個(gè)數(shù)組;譬如:[{“姓名”:“張一山”,“語(yǔ)文”:“124”}]。
JSON模塊利用json模塊的dumps()函數(shù)和loads()函數(shù)可以實(shí)現(xiàn)Python對(duì)象和JSON數(shù)據(jù)之間的轉(zhuǎn)換,其功能如下表所示。函數(shù)功能dumps()對(duì)Python對(duì)象進(jìn)行轉(zhuǎn)碼,將其轉(zhuǎn)化為JSON字符串loads()將JSON字符串解析為Python對(duì)象Python對(duì)象與JSON數(shù)據(jù)轉(zhuǎn)化時(shí)的類型對(duì)照如下表所示。Python對(duì)象JSON數(shù)據(jù)dictobjectlist,tuplearraystr,unicodestringint,long,floatnumberTruetrueFalsefalseNonenull任務(wù)實(shí)現(xiàn)—輸出楊輝三角形02
根據(jù)題意,先定義二維數(shù)組a[N][N],N為常量,大于要打印的行數(shù)n。再將每行的第一個(gè)數(shù)和最后一個(gè)數(shù)賦值為1,即a[i][1]=a[i][i]=1。除了每行的第一個(gè)數(shù)和最后一個(gè)數(shù)外,每行上的其他數(shù)都為其肩上的兩數(shù)之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。
任務(wù)分析程序代碼#輸出楊輝三角形n=0a=[([0]*10)foriinrange(10)]#定義一個(gè)10×10的二維數(shù)組whilen<=0orn>10:#控制打印的行數(shù)n=int(input('請(qǐng)輸入楊輝三角行數(shù):'))print('打印%d行楊輝三角如下:'%n)#計(jì)算楊輝三角的數(shù)值并存入數(shù)組a中forrowinrange(1,n+1):a[row][1]=a[row][row]=1#每行兩邊的數(shù)為1forrowinrange(3,n+1):forcolinrange(2,(row-1)+1):#計(jì)算其他位置的值并存入二維數(shù)組a[row][col]=a[row-1][col-1]+a[row-1][col]#打印楊輝三角forrowinrange(1,n+1):forkinrange(1,(n-row)+1):print('',end='')#每行輸出前先打印兩個(gè)空格forcolinrange(1,row+1):print('%4d'%(a[row][col]),end='')print()
程序總結(jié)上述代碼中,定義row和col兩個(gè)變量分別表示楊輝三
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州黃河護(hù)理職業(yè)學(xué)院《動(dòng)畫短片創(chuàng)作實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙大寧波理工學(xué)院《生物藥物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 全程種植玉米高產(chǎn)高效栽培技術(shù)
- 餐飲行業(yè)投資指南模板
- DB2201T 72-2024 公共數(shù)據(jù)授權(quán)運(yùn)營(yíng)評(píng)估規(guī)范
- 生物學(xué)開(kāi)題答辯模板
- 七夕節(jié)文化講座
- 申請(qǐng)外國(guó)人簽證邀請(qǐng)函需提供的材料
- 讀后感《小王子》
- 二零二五年度贍養(yǎng)協(xié)議及養(yǎng)老產(chǎn)業(yè)市場(chǎng)調(diào)研合同范本3篇
- 國(guó)家免疫規(guī)劃疫苗兒童免疫程序說(shuō)明-培訓(xùn)課件
- 能源管理體系記錄表單
- 智慧城市建設(shè)課件
- 污水處理廠提標(biāo)升級(jí)可研
- 湖南省建設(shè)工程施工階段監(jiān)理服務(wù)費(fèi)計(jì)費(fèi)規(guī)則【實(shí)用文檔】doc
- GB/T 6913-2008鍋爐用水和冷卻水分析方法磷酸鹽的測(cè)定
- GB/T 18717.2-2002用于機(jī)械安全的人類工效學(xué)設(shè)計(jì)第2部分:人體局部進(jìn)入機(jī)械的開(kāi)口尺寸確定原則
- 中國(guó)文化概論(第三版)全套課件
- 117-鋼結(jié)構(gòu)工程質(zhì)量常見(jiàn)問(wèn)題與管控措施
- SHS5230三星指紋鎖中文說(shuō)明書
- 諾和關(guān)懷俱樂(lè)部對(duì)外介紹
評(píng)論
0/150
提交評(píng)論