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

下載本文檔

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

文檔簡介

習題答案項目1習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)A(2)C(3)B(4)B(5)B項目2習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)D(2)A(3)C(4)B(5)A(6)B(7)B(8)A(9)D(10)C(11)D(12)C(13)A(14)B(15)C2.填空題(1)4(2)type()(3)end(4)2(5)and、or、not3.編程題(1)s='她說:"今天我要好好學習,做完功課才出去玩游戲!"'print(s)(2)a=int(input('請輸入三角形的邊:'))s=3*aprint(s)(3)s='python'print(s.upper())(4)a=10b=7a,b=b,aprint(f'交換后,a的值{a},b的值')(5)students={'張三':18,'李四':19,'王五':18}students['趙六']=20print(students)項目3習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)C(2)B(3)D(4)A(5)A(6)C(7)D(8)B(9)C(10)A(11)D(12)B(13)A(14)C(15)D2.填空題(1)個數(shù)(2)6,8(3)continue(4)whilefor(5)if-elif-else3.編程題(1)num=int(input("請輸入一個整數(shù):"))ifnum%2==0:print("是偶數(shù)")else:print("不是偶數(shù)")(2)year=int(input("請輸入一個年份:"))if(year%4==0andyear%100!=0)oryear%400==0:print("是閏年")else:print("不是閏年")(3)result=0foriinrange(1,11):m=1forjinrange(1,i+1):m=m*jresult=result+mprint(result)(4)foriinrange(1,101):ifi%3==0:continueprint(i)(5)num=int(input("請輸入一個數(shù)字:"))ifnum<0:print(num*-1)else:print(num)項目4習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)B(2)C(3)A(4)D(5)A2.編程題(1)defadd_numbers(num1,num2):result=num1+num2returnresult#示例調用result=add_numbers(3,5)print(result)#應該輸出82.(2)defsquare_number(num):result=num**2returnresult#示例調用result=square_number(4)print(result)#應該輸出16(3)defis_even(num):returnnum%2==0#示例調用print(is_even(2))#應該輸出Trueprint(is_even(3))#應該輸出False(4)defaverage_numbers(numbers_list):iflen(numbers_list)==0:return0.0#或者可以拋出一個異常來處理空列表的情況returnsum(numbers_list)/len(numbers_list)#示例調用numbers=[1,2,3,4,5]result=average_numbers(numbers)print(result)#應該輸出3.0(5)defis_palindrome(s):returns==s[::-1]#示例調用print(is_palindrome("level"))#應該輸出Trueprint(is_palindrome("hello"))#應該輸出False項目5習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)C(2)B(3)C(4)B(5)B2.編程題(1)my_math.pypythondefadd_numbers(a,b):returna+b另一個腳本(例如:main.py)pythonimportmy_mathresult=my_math.add_numbers(5,3)print(result)#輸出:8(2)greetings.pypythondefsay_hello(name):print(f"Hello,{name}!")另一個腳本(例如:main.py)pythonimportgreetingsgreetings.say_hello("Alice")#輸出:Hello,Alice!(3)utilities.pypythondefis_even(number):returnnumber%2==0另一個腳本(例如:main.py)pythonimportutilitiesifutilities.is_even(7):print("7iseven.")else:print("7isnoteven.")#輸出:7isnoteven.(4)這道題實際上說明了模塊變量在導入后不應該被修改,因為修改只在當前作用域內有效,不會反映到原始模塊中。但是為了回答這道題,我們可以展示這種嘗試和結果。my_module.pypythonmy_variable=10另一個腳本(例如:main.py)pythonimportmy_module#嘗試修改my_variable的值(實際上不推薦這樣做)my_module.my_variable=20print(my_module.my_variable)#輸出:20(在當前腳本中)#但是,如果再次導入my_module或在其他腳本中導入它,會發(fā)現(xiàn)my_variable的值仍然是10#因為Python模塊的導入機制導致只會在第一次導入時加載模塊,后續(xù)的導入會使用緩存的模塊對象。請注意,上面的代碼示例并不代表最佳實踐。通常不應該嘗試在導入模塊后修改其變量的值。如果需要修改值,請考慮使用函數(shù)或類來實現(xiàn)。(5)首先,需要創(chuàng)建一個包結構。以下是文件和目錄的結構:plaintext/my_project/my_package__init__.py(可以是空文件,但必須存在以標識該目錄為Python包)my_module.pymain.pymy_package/my_module.pypythondefcalculate_square(number):returnnumber**2main.pypythonfrommy_packageimportmy_moduleresult=my_module.calculate_square(4)print(result)#輸出:16確保Python解釋器的當前工作目錄是包含my_project的目錄,或者my_project目錄已經添加到了Python的模塊搜索路徑中(例如,通過設置PYTHONPATH環(huán)境變量)。然后,就可以運行main.py腳本來查看結果。項目6習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)D(2)B(3)C(4)B編程題(1)importres=input()#輸入:IlovePython3andIlikepython2ans=re.findall(r'python',s,re.I)print(ans)(2)importres=input()#輸入:IlovePython3andIlikepython2res=re.split(r'\d',s,0,re.I)print(res)項目7習題一、選擇題題號答案題號答案題號答案題號答案題號答案(1)D(2)A(3)A(4)C(5)C二、填空題1、文本文件(.txt)、CSV文件(.csv)、JSON文件(.csv)、Excel文件(.xlsx,.xls)、圖像文件(.jpg,png,.gif)、SQLite數(shù)據庫文件(.db)、PDF文件(.pdf)、日志文件(.log)。2、內置的open()函數(shù)、讀取模式('r')、寫入模式('w')、追加模式('a')。3、文件、目錄4、argv5、os、sys、io、shutil三、判斷題1、√2、√3、√4、×5、×四、簡答題1、=1\*GB3①'r'(只讀模式):以只讀方式打開文件。文件的指針會放在文件的開頭。如果文件不存在,會引發(fā)FileNotFoundError異常。=2\*GB3②'w'(只寫模式):以只寫方式打開文件。如果文件已經存在,則會被覆蓋;如果文件不存在,則會創(chuàng)建一個新文件。=3\*GB3③'a'(追加模式):以追加模式打開文件,即在已有內容的末尾添加新內容。如果文件不存在,則會創(chuàng)建一個新文件。=4\*GB3④'r+'(讀寫模式):以讀寫方式打開文件。文件的指針會放在文件的開頭,可以讀取和寫入文件。=5\*GB3⑤'w+'(讀寫模式):以讀寫方式打開文件。如果文件已存在,則會被覆蓋;如果文件不存在,則會創(chuàng)建一個新文件。=6\*GB3⑥'a+'(讀寫模式):以讀寫方式打開文件,并將文件指針放在文件末尾。如果文件不存在,則會創(chuàng)建一個新文件。2、例如:=1\*GB3①os模塊:描述:提供了與操作系統(tǒng)交互的功能,包括文件路徑操作、文件夾操作、進程管理等。=2\*GB3②io模塊:描述:提供了對文件I/O的支持,包括文件讀取、寫入等操作。=3\*GB3③sys模塊:描述:與Python解釋器和運行時環(huán)境相關的功能,包括訪問命令行參數(shù)、退出程序等。五、編程題第1小題答案:defdisplay_file_content_with_line_numbers(file_path):

try:

withopen(file_path,'r')asfile:

line_number=1

forlineinfile:

print(f"{line_number}\t{line.rstrip()}")

line_number+=1

exceptFileNotFoundError:

print("文件未找到,請檢查文件路徑是否正確。")

exceptIOError:

print("文件讀取時發(fā)生錯誤。")

#用戶輸入文件路徑

file_path=input("請輸入文本文件的路徑:")第2小題答案:importrefromcollectionsimportCounterdefcount_word_frequency(file_path):#讀取文件內容并將所有單詞轉換為小寫withopen(file_path,'r')asfile:text=file.read().lower()#使用正則表達式找到所有單詞words=re.findall(r'\b\w+\b',text)#統(tǒng)計單詞頻率word_freq=Counter(words)#輸出頻率最高的前5個單詞及其出現(xiàn)次數(shù)top_words=word_freq.most_common(5)forword,freqintop_words:print(f'{word}:{freq}')#用戶輸入文件路徑file_path=input("請輸入文本文件的路徑:")#調用函數(shù)統(tǒng)計單詞頻率并輸出前5個單詞count_word_frequency(file_path)項目8習題1.選擇題題號答案題號答案題號答案題號答案題號答案(1)D(2)B(3)B(4)B2.編程題(1)lst=[1,3,5,7,9]try: print(lst[20])except:print('indexoutofbound!')(2)n=int(input("請輸入一個整數(shù):"))try:print(100/n)exceptExceptionasresult:print("捕獲異常")print(result)raiseZeroDivisionError#拋出異常else:print("無異常")項目9習題一、選擇題題號答案題號答案題號答案題號答案題號答案(1)A(2)D(3)C(4)D(5)A二、填空題1、數(shù)據、操作2、類、對象3、方法、封裝、繼承、多態(tài)4、代碼塊5、實例變量(InstanceVariables)、類變量(ClassVariables)和私有變量(PrivateVariables)三、判斷題1、√2、×3、×4、×5、×四、簡答題(1)第1小題答案:Python面向對象編程(Object-OrientedProgramming,OOP)是一種程序設計范式,它基于對象的概念,將數(shù)據與操作封裝在對象中。以下是Python面向對象編程的基本概念:=1\*GB3①類(Class):類是對象的模板,用于定義對象的屬性(數(shù)據)和方法(操作)。類可以看作是一種數(shù)據類型的抽象描述,定義了對象的共同特征。=2\*GB3②對象(Object):對象是類的實例,具體化了類的定義,擁有類所描述的屬性和行為。每個對象都是獨立的實體,可以通過實例化類來創(chuàng)建對象。=3\*GB3③方法(Method):方法是類中定義的函數(shù),用于描述對象的行為或操作。通過方法,可以實現(xiàn)對象的功能和交互。=4\*GB3④封裝(Encapsulation):封裝是將數(shù)據(屬性)和操作(方法)捆綁在一起的概念。通過封裝,對象的內部細節(jié)被隱藏,外部只能通過暴露的接口與對象進行交互,增強了代碼的安全性和可維護性。=5\*GB3⑤繼承(Inheritance):繼承允許一個類(子類)繼承另一個類(父類)的屬性和方法。子類可以重用父類的代碼并且可以通過新增或修改方法來擴展或定制功能,提高代碼的復用性和擴展性。=6\*GB3⑥多態(tài)(Polymorphism):多態(tài)是指對象可以根據上下文表現(xiàn)出不同的行為。通過多態(tài),可以使用統(tǒng)一的接口處理不同類型的對象,簡化代碼結構并增加靈活性。(2)第2小題答案:=1\*GB3①方法:方法是類中定義的函數(shù),用于描述對象的行為或操作。方法定義了對象可以執(zhí)行的操作,通過方法可以實現(xiàn)對象的功能和交互。=2\*GB3②屬性:屬性是類中定義的變量,用于描述對象的狀態(tài)或特征。屬性存儲對象的數(shù)據,描述了對象的特征或狀態(tài)。=3\*GB3③面向對象的三大特征:封裝(Encapsulation):封裝是將數(shù)據(屬性)和操作(方法)捆綁在一起的概念,隱藏對象的內部細節(jié),只暴露必要的接口。這有助于提高代碼的安全性和可維護性。繼承(Inheritance):繼承允許一個類(子類)繼承另一個類(父類)的屬性和方法,使得代碼的重用性增強,同時可以通過新增或修改方法來擴展或定制功能。多態(tài)(Polymorphism):多態(tài)是指對象可以根據上下文表現(xiàn)出不同的行為,通過統(tǒng)一的接口處理不同類型的對象。

溫馨提示

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

評論

0/150

提交評論