Python程序設計習題與答案_第1頁
Python程序設計習題與答案_第2頁
Python程序設計習題與答案_第3頁
Python程序設計習題與答案_第4頁
Python程序設計習題與答案_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python 程序設計習題與參考答案第 1 章 基礎知識1.1 簡單說明如何選擇正確的 Python 版本。答:在選擇 Python 的時候,一定要先考慮清楚自己學習 Python 的目的是什么,打算做哪方面的開發(fā),有哪些擴展庫可用,這些擴展庫最高支持哪個版本的 Python,是 Python 2.x還是 Python 3.x,最高支持到 Python 2.7.6 還是 Python 2.7.9。這些問題都確定以后,再做出自己的選擇,這樣才能事半功倍,而不至于把大量時間浪費在 Python 的反復安裝和卸載上。同時還應該注意,當更新的 Python 版本推出之后,不要急于更新,而是應該等確定自己所必須使用的擴展庫也推出了較新版本之后再進行更新。盡管如此,Python 3 畢竟是大勢所趨,如果您暫時還沒想到要做什么行業(yè)領域的應用開發(fā),或者僅僅是為了嘗試一種新的、好玩的語言,那么請毫不猶豫地選擇 Python 3.x 系列的最高版本(目前是 Python 3.4.3) 。1.2 為什么說 Python 采用的是基于值的內存管理模式?答:Python 采用的是基于值的內存管理方式,如果為不同變量賦值相同值,則在內存中只有一份該值,多個變量指向同一塊內存地址,例如下面的代碼。 x = 3 id(x)10417624 y = 3 id(y)10417624 y = 5 id(y)10417600 id(x)104176241.3 在 Python 中導入模塊中的對象有哪幾種方式?答:常用的有三種方式,分別為 import 模塊名 as 別名 from 模塊名 import 對象名 as 別名 from math import *1.4 使用 pip 命令安裝 numpy、scipy 模塊。答:在命令提示符環(huán)境下執(zhí)行下面的命令:pip install numpypip install scipy1.5 編寫程序,用戶輸入一個三位以上的整數,輸出其百位以上的數字。例如用戶輸入 1234,則程序輸出 12。 (提示:使用整除運算。 )答:1)Python 3.4.2 代碼:x = input(Please input an integer of more than 3 digits:)try:x = int(x)x = x/100if x = 0:print(You must input an integer of more than 3 digits.)else:print(x)except BaseException:print(You must input an integer.)2)Python 2.7.8 代碼:import typesx = input(Please input an integer of more than 3 digits:)if type(x) != types.IntType:print You must input an integer.elif len(str(x) != 4:print You must input an integer of more than 3 digits.else:print x/100第 2 章 Python 數據結構2.1 為什么應盡量從列表的尾部進行元素的增加與刪除操作?答:當列表增加或刪除元素時,列表對象自動進行內存擴展或收縮,從而保證元素之間沒有縫隙,但這涉及到列表元素的移動,效率較低,應盡量從列表尾部進行元素的增加與刪除操作以提高處理速度。2.2 編寫程序,生成包含 1000 個 0 到 100 之間的隨機整數,并統(tǒng)計每個元素的出現次數。 (提示:使用集合。 )答:1)Python 3.4.2 代碼import randomx = random.randint(0,100) for i in range(1000)d = set(x)for v in d:print(v, :, x.count(v)2)Python 2.7.8 代碼import randomx = random.randint(0,100) for i in range(1000)d = set(x)for v in d:print v, :, x.count(v)2.3 編寫程序,用戶輸入一個列表和 2 個整數作為下標,然后輸出列表中介于 2 個下標之間的元素組成的子列表。例如用戶輸入1,2,3,4,5,6和 2,5,程序輸出3,4,5,6 。答:1)Python 3.4.2 代碼x = input(Please input a list:)x = eval(x)start, end = eval(input(Please input the start position and the end position:)print(xstart:end)2)Python 2.7.8 代碼x = input(Please input a list:)start, end = input(Please input the start position and the end position:)print xstart:end2.4 設計一個字典,并編寫程序,用戶輸入內容作為鍵,然后輸出字典中對應的值,如果用戶輸入的鍵不存在,則輸出“您輸入的鍵不存在!”答:1)Python 3.4.2 代碼d = 1:a, 2:b, 3:c, 4:dv = input(Please input a key:)v = eval(v)print(d.get(v,您輸入的的鍵不存在)2)Python 2.7.8 代碼d = 1:a, 2:b, 3:c, 4:dv = input(Please input a key:)print(d.get(v,您輸入的的鍵不存在)2.5 編寫程序,生成包含 20 個隨機數的列表,然后將前 10 個元素升序排列,后 10 個元素降序排列,并輸出結果。答:1)Python 3.4.2 代碼import randomx = random.randint(0,100) for i in range(20)print(x)y = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)x10:20 = yprint(x)2)Python 2.7.8 代碼import randomx = random.randint(0,100) for i in range(20)print xy = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)x10:20 = yprint x2.6 在 Python 中,字典和集合都是用一對 大括號 作為定界符,字典的每個元素有兩部分組成,即 鍵 和 值 ,其中 鍵 不允許重復。2.7 假設有列表 a = name,age,sex和 b = Dong,38,Male,請使用一個語句將這兩個列表的內容轉換為字典,并且以列表 a 中的元素為鍵,以列表 b 中的元素為值,這個語句可以寫為 c = dict(zip(a,b)。2.8 假設有一個列表 a,現要求從列表 a 中每 3 個元素取 1 個,并且將取到的元素組成新的列表 b,可以使用語句 b = a:3。2.9 使用列表推導式生成包含 10 個數字 5 的列表,語句可以寫為 5 for i in range(10)。2.10 不可以 (可以、不可以)使用 del 命令來刪除元組中的部分元素。第 3 章 選擇結構與循環(huán)結構3.1 分析邏輯運算符“or”的短路求值特性。答:假設有表達式“表達式 1 or 表達式 2”,如果表達式 1 的值等價于 True,那么無論表達式 2 的值是什么,整個表達式的值總是等價于 True。因此,不需要再計算表達式 2 的值。3.2 編寫程序,運行后用戶輸入 4 位整數作為年份,判斷其是否為閏年。如果年份能被 400 整除,則為閏年;如果年份能被 4 整除但不能被 100 整除也為閏年。答:1)Python 3.4.2 代碼x = input(Please input an integer of 4 digits meaning the year:)x = eval(x)if x%400=0 or (x%4=0 and not x%100=0):print(Yes)else:print(No)2)Python 2.7.8 代碼x = input(Please input an integer of 4 digits meaning the year:)if x%400=0 or (x%4=0 and not x%100=0):print Yeselse:print No3.3 編寫程序,生成一個包含 50 個隨機整數的列表,然后刪除其中所有奇數。 (提示:從后向前刪。 )答:1)Python 3.4.2 代碼import randomx = random.randint(0,100) for i in range(50)print(x)i = len(x)-1while i=0:if xi%2=1:del xii-=1print(x)2)Python 2.7.8 代碼把上面的代碼中第三行和最后一行改為 print x 即可。34 編寫程序,生成一個包含 20 個隨機整數的列表,然后對其中偶數下標的元素進行降序排列,奇數下標的元素不變。 (提示:使用切片。 )答:1)Python 3.4.2 代碼import randomx = random.randint(0,100) for i in range(20)print(x)y = x:2y.sort(reverse=True)x:2 = yprint(x)2)Python 2.7.8 代碼把上面的代碼中第三行和最后一行改為 print x 即可。35 編寫程序,用戶從鍵盤輸入小于 1000 的整數,對其進行因式分解。例如,10=25,60=2235。答:1)Python 3.4.2 代碼x = input(Please input an integer less than 1000:)x = eval(x)t = xi = 2result = while True:if t=1:breakif t%i=0:result.append(i)t = t/ielse:i+=1Print x,=,*.join(map(str,result)2)Python 2.7.8 代碼x = input(Please input an integer less than 1000:)t = xi = 2result = while True:if t=1:breakif t%i=0:result.append(i)t = t/ielse:i+=1print x,=,*.join(map(str,result)3.6 編寫程序,至少使用 2 種不同的方法計算 100 以內所有奇數的和。答:Python 3.4.2 代碼如下,如果使用 Python 2.7.8 只需要把其中的 print()函數改為print 語句即可。x = i for i in range(1,100) if i%2=1print(sum(x)print(sum(range(1,100):2)3.7 編寫程序,實現分段函數計算,如下表所示。x yx=20:print(0)elif 0=x5:print(x)elif 5=x10:print(3*x-5)elif 10=x20:print(0.5*x-2)第 4 章 字符串與正則表達式4.1 假設有一段英文,其中有單獨的字母“I”誤寫為“i” ,請編寫程序進行糾正。答:這里給出 Python 3.4.2 代碼,如果使用 Python 2.7.8 的話只需要修改其中的 print()函數為 print 語句即可。1)不使用正則表達式x = “i am a teacher,i am man, and i am 38 years old.I am not a businessman.“x = x.replace(i ,I )x = x.replace( i , I )print(x)2)使用正則表達式x = “i am a teacher,i am man, and i am 38 years old.I am not a businessman.“import repattern = pile(r(?:w|b)i(?:w)while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x:result.start(0)+1+I+xresult.end(0)-1:else:x = x:result.start(0)+I+xresult.end(0)-1:else:breakprint(x)4.2 假設有一段英文,其中有單詞中間的字母“i”誤寫為“I” ,請編寫程序進行糾正。答:這里給出 Python 3.4.2 代碼,如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論