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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

評論

0/150

提交評論