大學《Python程序設計》試題及答案5620_第1頁
大學《Python程序設計》試題及答案5620_第2頁
大學《Python程序設計》試題及答案5620_第3頁
大學《Python程序設計》試題及答案5620_第4頁
大學《Python程序設計》試題及答案5620_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2020、 表達式'Helloworld!'.count('l')的值為 o(3)大學介丫由0門程序設計》試題及答案一、填空題1、表達式'abc.txt'.endswith(('.txt','.doc','.jpg'))的值為o(True)代碼print(1,2,3,sep=':')的執(zhí)行結(jié)果為 。(1:2:3)代碼foriinrange(3):print(i,end=',')的執(zhí)行結(jié)果為 。(0,1,2,)表達式eval('''__import__('math').sqrt(9)''')的值為 。(3.0)表達式eval('''__import__('math').sqrt(3**2+4**2)''')的值為 。(5.0)表達式eval('3+5')的值為 。(8)表達式eval('[1,2,3]')的值為 。([1,2,3])8、假設math標準庫已導入,那么表達式eval('math.sqrt(4)')的值為o(2.0)9、已知x為非空列表,那么表達式random.choice(x)inx的值為o(True)表達式'abc10'.isalnum()的值為 o(True)表達式'abc10'.isalpha()的值為 o(False)表達式'abc10'.isdigit()的值為 o(False)表達式'C:\\windows\\notepad.exe'.endswith('.exe')的值為 o(True)表達式'%s'%[1,2,3]的值為 o('[1,2,3]')表達式 'aaasdf'.lstrip('as') 的值為 o('df')表達式 'aaasdf'.lstrip('af') 的值為 o('sdf')表達式'aaasdf'.strip('af')的值為 o('sd')表達式 'aaasdf'.rstrip('af') 的值為 o('aaasd')表達式len('SDIBT')的值為 o(5)已知x='abcdefg',則表達式x[3:]+x[:3]的值為。('defgabc')字符串編碼格式UTF8使用個字節(jié)表示一個漢字。(3)字符串編碼格式GBK使用個字節(jié)表示一個漢字。(2)已知字符串編碼格式utf8使用3個字節(jié)表示一個漢字、1個字節(jié)表示英語字母,那么表達式len('abc你好')的值為。(5)已知字符串編碼格式utf8使用3個字節(jié)表示一個漢字、1個字節(jié)表示英語字母,那么表達式len('abc你好'.encode())的值為。(9)已知字符串編碼格式gbk使用2個字節(jié)表示一個漢字、1個字節(jié)表示英語字母,那么表達式len('abc你好'.encode('gbk'))的值為。(7)已知ord('A')的值為65并且hex(65)的值為‘0x41',那么表達式'\x41b'的值為 o('Ab')已知formatter='good{0}'.format,那么表達式list(map(formatter,['moming']))的值為o(['goodmorning'])已知x='helloworld.',那么表達式x.find('x'^Dx.rfind('x')的值都為。(-1)表達式':'.join('helloworld.'.split())的值為°('hello:world.')表達式':'.join('abcd'.split(maxsplit=2))的值為°('a:b:cd')已知x='helloworld',那么表達式x.replace('l','g')的值為。('heggoworgd')假設已成功導入Python標準庫string,那么表達式len(string.digits)的值為 。(10)表達式'aaaassddf.strip('af)的值為°('ssdd')表達式len('aaaassddf.strip('afds'))的值為。(0)表達式len('helloworld'[100:])的值為。(0)表達式chr(ord('a')A32八32)的值為。(支)表達式chr(ord('a')A32)的值為°('A')已知x='aabcccdddd',那么表達式".join([vfori,vinenumerate(x[:-1])ifv==x[i+1]])的值為。('accddd')假設正則表達式模塊re已正確導入,那么表達式"join(re.findall('\d+','abcd1234'))的值為 。('1234')假設正則表達式模塊re已正確導入,那么表達式re.findall('\d+?’,'abcd1234')的值為 。(['1','2','3','4'])假設正則表達式模塊re已正確導入,那么表達式re.sub('(.\s)\\1+','\\1','aaaaabb')的值為。('abb')表達式eval('*'.join(map(str,range(1,6))))的值為 。(120)正則表達式模塊re的方法用來編譯正則表達式對象。(compile。)正則表達式模塊re的方法用來在字符串開始處進行指定模式的匹酉己。(match())正則表達式模塊re的方法用來在整個字符串中進行指定模式的匹配。(search())表達式re.search(r'\w*?(?P<f>\b\w+\b)\s+(?P=f)\w*?','Beautifulisisbetterthanugly.').group(O)的值為o('isis')表達式'Beautifulisbetterthanugly.'.startswith('Be',5)的值為o(False)已知字典x={i:str(i+3)foriinrange(3)},那么表達式''.join(x.values())的值為 。('345')Python中定義函數(shù)的關鍵字是 o(def)在函數(shù)內(nèi)部可以通過關鍵字來定義全局變量。(global)如果函數(shù)中沒有return語句或者return語句不帶任何返回值,那么該函數(shù)的返回值為o(None)表達式sum(range(10))的值為 。(45)表達式sum(range(1,10,2))的值為 。(25)表達式list(filter(None,[0,1,2,3,0,0]))的值為 。([1,2,3])表達式list(filter(lambdax:x>2,[0,1,2,3,0,0]))的值為 。([3])表達式list(range(50,60,3))的值為 。([50,53,56,59])表達式list(filter(lambdax:x%2==0, range(10)))的值為 。([0,2,4,6,8])表達式list(filter(lambdax:len(x)>3,['a','b','abcd']))的值為。(['abed'])已知g=lambdax,y=3,z=5:x*y*z,則語句print(g(1))的輸出結(jié)果為。(15)表達式list(map(lambdax:len(x),['a','bb','eee']))的值為 。([1,2,3])已知f=lambdax:x+5,那么表達式f(3)的值為。(8)TOC\o"1-5"\h\z表達式sorted(['abe','aed','ade'],key=lambdax:(x[0],x[2]))的值為 。(['abe','aed','ade'])已知函數(shù)定義defdemo(x,y,op):returneval(str(x)+op+str(y)),那么表達式demo(3,5,'+')的值為 。(8)已知函數(shù)定義defdemo(x,y,op):returneval(str(x)+op+str(y)),那么表達式demo(3,5,'*')的值為 。(15)已知函數(shù)定義defdemo(x,y,op):returneval(str(x)+op+str(y)),那么表達式demo(3,5,'-')的值為 。(-2)已知f=lambdan:len(bin(n)[bin(n).rfind('1')+1:]),那么表達式f(6)的值為 。(1)已知f=lambdan:len(bin(n)[bin(n).rfind('1')+1:]),那么表達式f(7)的值為 。(0)已知g=lambdax,y=3,z=5:x+y+z,那么表達式g(2)的值為。(10)已知函數(shù)定義deffunc(*p):returnsum(p),那么表達式func(1,2,3)的值為。(6)已知函數(shù)定義deffunc(*p):returnsum(p),那么表達式func(1,2,3,4)的值為 。(10)已知函數(shù)定義deffunc(**p):returnsum(p.values()),那么表達式func(x=1,y=2,z=3)的值為 。(6)已知函數(shù)定義deffunc(**p):return''.join(sorted(p)),那么表達式func(x=1,y=2,z=3)的值為。('xyz')已知f=lambdax:5,那么表達式f(3)的值為。(5)Python使用關鍵字來定義類。(class)表達式isinstance('abc',str)的值為o(True)表達式isinstance('abc',int)的值為。(False)表達式isinstance(4j,(int,float,complex))的值為°(True)表達式isinstance('4',(int,float,complex))的值為o(False)表達式type(3)in(int,float,complex)的值為°(True)表達式type(3.0)in(int,float,complex)的值為°(True)表達式type(3+4j)in(int,float,complex)的值為°(True)表達式type('3')in(int,float,complex)的值為o(False)表達式type(3)==int的值為°(True)在Python定義類時,與運算符“**”對應的特殊方法名為 。(__pow__())在Python中定義類時,與運算符“//”對應的特殊方法名為 。(__floordiv__())表達式type({})==dict的值為°(True)表達式type({})==set的值為。(False)在Python中,不論類的名字是什么,構造方法的名字都是 。(__init__)如果在設計一個類時實現(xiàn)了__contains__()方法,那么該類的對象會自動支持 運算符。(in)對文件進行寫入操作之后, 方法用來在不關閉文件對象的情況下將緩沖區(qū)內(nèi)容寫入文件。(flush())Python內(nèi)置函數(shù)用來打開或創(chuàng)建文件并返回文件對象。(open())使用上下文管理關鍵字 可以自動管理文件對象,不論何種原因結(jié)束該關鍵字中的語句塊,都能保證文件被正確關閉。(with)Python標準庫os中用來列出指定文件夾中的文件和子文件夾列表的方式是 。(listdir())TOC\o"1-5"\h\zPython標準庫os.path中用來判斷指定文件是否存在的方法是 。(exists())Python標準庫os.path中用來判斷指定路徑是否為文件的方法是 。(isfile())Python標準庫os.path中用來判斷指定路徑是否為文件夾的方法是 。(isdir())Python標準庫os.path中用來分割指定路徑中的文件擴展名的方法是 。(splitext())Python擴展庫 支持Excel2007或更高版本文件的讀寫操作。(openpyxl)Python標準庫中提供了計算MD5摘要的方法md5()°(hashlib)已知當前文件夾中有純英文文本文件readme.txt,請?zhí)羁胀瓿晒δ馨裷eadme.txt文件中的所有內(nèi)容復制至Udst.txt中,withopen('readme.txt')assrc,open('dst.txt',)asdst:dst.write(src.read())°('w')Python內(nèi)建異常類的基類是 。(BaseException)Python標準庫對Socket進行了二次封裝,支持Socket接口的訪問,大幅度簡化了網(wǎng)絡程序的開發(fā)。(socket)Python擴展庫 中封裝了Windows底層幾乎所有API函數(shù)。(pywin32)線程對象的 方法用來阻塞當前線程,指定線程運行結(jié)束或超時后繼續(xù)運行當前線程。(join())Python用來訪問和操作內(nèi)置數(shù)據(jù)庫SQLite的標準庫是 0(sqlite3)用于刪除數(shù)據(jù)庫表test中所有name字段值為’10001’的記錄的SQL語句為。(deletefromtestwherename='10001,)Python擴展庫完美封裝了圖形庫OpenGL的功能。(pyopengl)Python擴展庫和提供了圖像處理功能。(PIL、pillow)二、判斷題1、在Python中定義類時實例方法的第一個參數(shù)名稱不管是什么,都表示對象自身。(對)2、定義類時如果實現(xiàn)了—contains_O方法,該類對象即可支持成員測試運算in。(對)3、定義類時如果實現(xiàn)Y_len_()方法,該類對象即可支持內(nèi)置函數(shù)len()。(對)定義類時實現(xiàn)了__eq__()方法,該類對象即可支持運算符==。(對)定義類時實現(xiàn)了__pow__()方法,該類對象即可支持運算符**。(對)6、Python類的構造函數(shù)是—init—()。(對)7、定義類時,在一個方法前面使用@classmethod進行修飾,則該方法屬于類方法。(對)8、定義類時,在一個方法前面使用@staticmethod進行休息,則該方法屬于靜態(tài)方法。(對)通過對象不能調(diào)用類方法和靜態(tài)方法。(錯)在Python中可以為自定義類的對象動態(tài)增加新成員。(對)Python類不支持多繼承。(錯)屬性可以像數(shù)據(jù)成員一樣進行訪問,但賦值時具有方法的優(yōu)點,可以對新值進行檢查。(對)只可以動態(tài)為對象增加數(shù)據(jù)成員,而不能為對象動態(tài)增加成員方法。(錯)任何包含__call__()方法的類的對象都是可調(diào)用的。(對)在Python中函數(shù)和類都屬于可調(diào)用對象。(對)函數(shù)和對象方法是一樣的,內(nèi)部實現(xiàn)和外部調(diào)用都沒有任何區(qū)別。(錯)在設計派生類時,基類的私有成員默認是不會繼承的。(對)如果在設計一個類時實現(xiàn)類_len__()方法,那么該類的對象會自動支持Python內(nèi)置函數(shù)len()。(對)擴展庫os中的方法remove()可以刪除帶有只讀屬性的文件。(錯)使用內(nèi)置函數(shù)open()且以"w”模式打開的文件,文件指針默認指向文件尾。(錯)使用內(nèi)置函數(shù)open()打開文件時,只要文件路徑正確就總是可以正確打開的。(錯)使用print()函數(shù)無法將信息寫入文件。(錯)對文件進行讀寫操作之后必須顯式關閉文件以確保所有內(nèi)容都得到保存。(對)Python標準庫os中的方法startfile()可以啟動任何已關聯(lián)應用程序的文件,并自動調(diào)用關聯(lián)的程序。(對)Python標準庫os中的方法startfile()可以用來打開外部程序或文件,系統(tǒng)會自動關聯(lián)相應的程序來打開或執(zhí)行指定的文件。(對)假設os模塊已導入,那么列表推導式[filenameforfilenameinos.listdir('C:\\Windows')iffilename.endswith('.exe')]的作用是列出C:\Windows文件夾中所有擴展名為.exe的文件。(對)二進制文件不能使用記事本程序打開。(錯)使用普通文本編輯器軟件也可以正常查看二進制文件的內(nèi)容。(錯)二進制文件也可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內(nèi)容。(對)Python標準庫os中的方法isfile()可以用來測試給定的路徑是否為文件。(對)Python標準庫os中的方法exists()可以用來測試給定路徑的文件是否存在。(對)Python標準庫os中的方法isdir()可以用來測試給定的路徑是否為文件夾。(對)Python標準庫os中的方法listdir()返回包含指定路徑中所有文件和文件夾名稱的列表。(對)Python擴展庫xlwt支持對Excel2003或更低版本的Excel文件進行寫操作。(對)Python擴展庫xlrd支持對Excel2003或更低版本的Excel文件進行讀操作。(對)標準庫os的rename()方法可以實現(xiàn)文件移動操作。(對)標準庫os的listdir()方法默認只能列出指定文件夾中當前層級的文件和文件夾列表,而不能列出其子文件夾中的文件。(對)文件對象的tell()方法用來返回文件指針的當前位置。(對)以寫模式打開的文件無法進讀操作。(對)假設已成功導入os和sys標準庫,那么表達式os.path.dirname(sys.executable)的值為Python安裝目錄。(對)以讀模式打開文件時,文件指針指向文件開始處。(對)以追加模式打開文件時,文件指針指向文件尾。(對)二進制文件也可以使用記事本程序打開,只是無法正確閱讀和理解其中的內(nèi)容。(對)文本文件是可以迭代的,可以使用forlineinfp類似的語句遍歷文件對象fp中的每一行。(對)Python的主程序文件python.exe屬于二進制文件。(對)對字符串信息進行編碼以后,必須使用同樣的或者兼容的編碼格式進行解碼才能還原本來的信息。(對)使用pickle進行序列化得到的二進制文件使用struct也可以正確地進行反序列化。(錯)已知當前文件夾中有一個文件readme.txt具有只讀屬性,假設標準庫os已正確導入,那么可以通過語句os.chmod('readme.txt',0o777)來刪除該文件的只讀屬性。(對)Python標準庫os的函數(shù)remove()不能刪除具有只讀屬性的文件。(對)在try...except…else結(jié)構中,如果try塊的語句引發(fā)了異常則會執(zhí)行else塊中的代碼。(錯)異常處理結(jié)構中的finally塊中代碼仍然有可能出錯從而再次引發(fā)異常。(對)程序中異常處理結(jié)構在大多數(shù)情況下是沒必要的。(錯)帶有else子句的異常處理結(jié)構,如果不發(fā)生異常則執(zhí)行else子句中的代碼。(對)異常處理結(jié)構也不是萬能的,處理異常的代碼也有引發(fā)異常的可能。(對)在異常處理結(jié)構中,不論是否發(fā)生異常,finally子句中的代碼總是會執(zhí)行的。(對)由于異常處理結(jié)構try...except…finally…中finally里的語句塊總是被執(zhí)行的,所以把關閉文件的代碼放到finally塊里肯定是萬無一失,一定能保證文件被正確關閉并且不會引發(fā)任何異常。(錯)在GUI設計中,復選框往往用來實現(xiàn)非互斥多選的功能,多個復選框之間的選擇互不影響。(對)在GUI設計中,單選按鈕用來實現(xiàn)用戶在多個選項中的互斥選擇,在同一組內(nèi)多個選項中只能選擇一個,當選擇發(fā)生變化之后,之前選中的選項自動失效。(對)Python代碼可以內(nèi)嵌在asp文件中。(對)無法配置IIS來支持Python程序的運行。(錯)使用TCP協(xié)議進行通信時,必須首先建立連接,然后進行數(shù)據(jù)傳輸,最后再關閉連接。(對)TCP是可以提供良好服務質(zhì)量的傳輸層協(xié)議,所以在任何場合都應該優(yōu)先考慮使用。(錯)可以使用py2exe或pyinstaller等擴展庫把Python源程序打包成為exe文件,從而脫離Python環(huán)境在Windows平臺上運行。(對)Python程序只能在安裝了Python環(huán)境的計算機上以源代碼形式運行。(錯)繼承自threading.Thread類的派生類中不能有普通的成員方法。(錯)Python標準庫threading中的Lock、RLock、Condition、Event、Semaphore對象都可以用來實現(xiàn)線程同步。(對)在編寫應用程序時,應合理控制線程數(shù)量,線程并不是越多越好。(對)在多線程編程時,當某子線程的daemon屬性為False時,主線程結(jié)束時會檢測該子線程是否結(jié)束,如果該子線程尚未運行結(jié)束,則主線程會等待它完成后再退出。(對)在4核CPU平臺上使用多線程編程技術可以很輕易地獲得400%的處理速度提升。(錯)多線程編程技術主要目的是為了提高計算機硬件的利用率,沒有別的作用了。(錯)Python只能使用內(nèi)置數(shù)據(jù)庫SQLite,無法訪問MSSQLServer、ACCESS或Oracle、MySQL等數(shù)據(jù)庫。(錯)使用OpenGL畫圖時,畫點是最基本的操作,具體生成的圖形由glBegin()函數(shù)指定的mode來決定。例如,mode值為GL_TRIANGLES時表示將要繪制三角形。(對)OpenGL采用的“狀態(tài)機”工作方式,一旦設置了某種狀態(tài)以后,除非顯式修改該狀態(tài),否則該狀態(tài)將一直保持。(對)三、簡答題1、閱讀下面的代碼,并分析假設文件“D:\test.txt”不存在的情況下兩段代碼可能發(fā)生的問題。代碼1:>>>try:fp=open(r'd:\test.txt')print('Helloworld!',file=fp)finally:fp.close()代碼2:>>>try:fp=open(r'd:\test.txt','a+')print('Helloworld!',file=fp)finally:fp.close()答:假設文件“D:\test.txt”不存在,那么第一段代碼會拋出異常,提示fp沒有定義;第二段代碼執(zhí)行正常。原因是第二段代碼使用內(nèi)置函數(shù)open()打開指定文件時如果不存在則會創(chuàng)建該文件,從而不會拋出異常。2、下面的代碼本意是把當前文件夾中所有html文件都改為htm文件,仔細閱讀代碼,簡要說明可能存在的問題。importosfile_list=os.listdir(".")forfilenameinfile_list:pos=filename.rindex(".")iffilename[pos+1:]=="html":newname=filename[:pos+1]+"htm"os.rename(filename,newname)print(filename+"更名為:"+newname)答:對于字符串對象,如果要查找的子字符串不存在,則rindex()方法會拋出異常。所以,如果當前文件夾中有不包含圓點的文件名或者子文件夾名,上面的代碼會拋出異常而崩潰。四、編程題1、閱讀下面的代碼,分析其執(zhí)行結(jié)果。defdemo(a,b,c=3,d=100):returnsum((a,b,c,d))print(demo(1,2,3,4))print(demo(1,2,d=3))答:輸出結(jié)果為10(3)(3)defdemo():x=5x=3demo()print(x)3、下面函數(shù)的功能為。(將序列循環(huán)左移k位,得到新序列并返回)defdemo(lst,k):ifk<len(lst):returnlst[k:]+lst[:k]4、編寫函數(shù),求任意整數(shù)的二進制形式中最后連續(xù)0的個數(shù)。defdemo(n):b_n=bin(n)index=b_n.rfind('1')+1returnlen(b_n[index:])5、有n個乒乓球運動員打淘汰賽,編寫函數(shù)計算至少需要多少場比賽才能決出冠軍,不允許直接使用n-1。defdemo(n):ifn==1:return0ifn==2:return1m,c=divmod(n,2)returnm+demo(c+m)6、使用循環(huán)和列表推導式兩種方法求解百錢買百雞問題。假設大雞5元一只,中雞3元一只,小雞1元三只,現(xiàn)有100元錢想買100只雞,有多少種買法?(1)循環(huán)>>>forxinrange(21):foryinrange(34):z=100-x-yifz%3==0and5*x+3*y+z//3==100:print(x,y,z)02575418788118112484(2)列表推導式>>>[(x,y,100-x-y)forxinrange(21)foryinrange(34)if(100-x-y)%3==0and5*x+3*y+(100-x-y)//3==100][(0,25,75),(4,18,78),(8,11,81),(12,4,84)]7、編寫函數(shù),給定任意字符串,找出其中只出現(xiàn)一次的字符,如果有多個這樣的字符,就全部找出。defsearchOne(s):創(chuàng)建空字典d=dict()遍歷字符串,并分別記錄每個字符的出現(xiàn)次數(shù)forchins:這里重點演示字典的get()方法如果這個字符出現(xiàn)過,加1如果這個字符第一次出現(xiàn),0+1d[ch]=d.get(ch,0)+1列表推導式,查找所有只出現(xiàn)一次的字符chs=[chforch,nind.items()ifn==1]返回最終結(jié)果,所有只出現(xiàn)一次的字符returnchsprint(searchOne('abcdddca'))8、閱讀以下冒泡法排序代碼,嘗試寫出優(yōu)化代碼,提高代碼運行效率。fromrandomimportrandintdefbubbleSort(lst):length=len(lst)foriinrange(0,length):forjinrange(0,length-i-1):#比較相鄰兩個元素大小,并根據(jù)需要進行交換iflst[j]>lst[j+1]:lst[j],lst[j+1]=lst[j+1],lst[j]lst=[randint(1,100)foriinrange(20)]print('Beforesort:\n',lst)bubbleSort(lst)print('Aftersort:\n',lst)參考答案:fromrandomimportrandintdefbubbleSort(lst):length

溫馨提示

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

評論

0/150

提交評論