Python基礎(chǔ)教程-習(xí)題(含答案)_第1頁(yè)
Python基礎(chǔ)教程-習(xí)題(含答案)_第2頁(yè)
Python基礎(chǔ)教程-習(xí)題(含答案)_第3頁(yè)
Python基礎(chǔ)教程-習(xí)題(含答案)_第4頁(yè)
Python基礎(chǔ)教程-習(xí)題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python基礎(chǔ)教程習(xí)題(含答案)第一章一、判斷題1、Python是一種跨平臺(tái)、開(kāi)源、免費(fèi)的高級(jí)動(dòng)態(tài)編程語(yǔ)言。(對(duì))2、Python3.x完全兼容Python2.x。(錯(cuò))3、在Windows平臺(tái)上編寫(xiě)的Python程序無(wú)法在Unix平臺(tái)運(yùn)行。(錯(cuò))4、不可以在同一臺(tái)計(jì)算機(jī)上安裝多個(gè)Python版本。(錯(cuò))5、pip命令也支持?jǐn)U展名為.whl的文件直接安裝Python擴(kuò)展庫(kù)。(對(duì))二、填空題1、Python安裝擴(kuò)展庫(kù)常用的是 工具。(pip)2、在IDLE交互模式中瀏覽上一條語(yǔ)句的快捷鍵是 。(Alt+P)3、Python程序文件擴(kuò)展名主要有 和 兩種,其中后者常用于GUI程序。(py、pyw)4、Python源代碼程序編譯后的文件擴(kuò)展名為 。(pyc)5、使用pip工具升級(jí)科學(xué)計(jì)算擴(kuò)展庫(kù)Numpy的完整命令是 。(pipinstall--upgradeNumpy)6、使用pip工具安裝科學(xué)計(jì)算擴(kuò)展庫(kù)Numpy的完整命令是 。(pipinstallNumpy)7、使用pip工具查看當(dāng)前已安裝的Python擴(kuò)展庫(kù)的完整命令是 。(piplist)8、現(xiàn)有一python文件為“Stu.py”,ico文件為“Stu.ico”,兩者均在同一目錄下,現(xiàn)要將Stu.py打包發(fā)布在此目錄下,所發(fā)布的文件圖標(biāo)采用Stu.ico,需要使用的命令是 。(pyinstaller–IStu.ico–FStu.py)第二章一、判斷題1、已知x=3,那么賦值語(yǔ)句x='abcedfg'是無(wú)法正常執(zhí)行的。(錯(cuò))2、Python變量使用前必須先聲明,并且一旦聲明就不能再當(dāng)前作用域內(nèi)改變其類型。(錯(cuò))3、Python采用的是基于值得自動(dòng)內(nèi)存管理方式。(對(duì))4、Python不允許使用關(guān)鍵字作為變量名,允許使用內(nèi)置函數(shù)名作為變量名,但這會(huì)改變函數(shù)名的含義。(對(duì))5、在Python中可以使用if作為變量名。(錯(cuò))6、在Python3.x中可以使用中文作為變量名。(對(duì))7、Python變量名必須以字母或下劃線開(kāi)頭,并且區(qū)分字母大小寫(xiě)。(對(duì))8、加法運(yùn)算符可以用來(lái)連接字符串并生成新字符串。(對(duì))9、3+4j不是合法的Python表達(dá)式。(錯(cuò))10、0o12f是合法的八進(jìn)制數(shù)字。(錯(cuò))11、不管輸入什么,Python3.x中input()函數(shù)的返回值總是字符串。(對(duì))12、在Python中0xad是合法的十六進(jìn)制數(shù)字表示形式。(對(duì))13、Python使用縮進(jìn)來(lái)體現(xiàn)代碼之間的邏輯關(guān)系。(對(duì))14、Python代碼的注釋只有一種方式,那就是使用#符號(hào)。(錯(cuò))15、放在一對(duì)三引號(hào)之間的任何內(nèi)容將被認(rèn)為是注釋。(錯(cuò))16、為了讓代碼更加緊湊,編寫(xiě)Python程序時(shí)應(yīng)盡量避免加入空格和空行。(錯(cuò))17、Python變量名區(qū)分大小寫(xiě),所以student和Student不是同一個(gè)變量。(對(duì))18、在Python3.x中,使用內(nèi)置函數(shù)input()接收用戶輸入時(shí),不論用戶輸入的什么格式,一律按字符串進(jìn)行返回。(對(duì))二、填空題1、布爾類型的值包括 和 。(True、False)2、Python的浮點(diǎn)數(shù)占 字節(jié)。(8)3、00001100>>2的結(jié)果是 。(00000011或3)4、若a=20,那么bin(a)的值為 。(0b10100)5、a=60;b=13;c=13,a>bandb<c輸出的結(jié)果是(False),a>borb<c輸出的結(jié)果是(True),aandb輸出的結(jié)果是(13),aorb輸出的結(jié)果是(60)。6、3.14E5表示的是 。(314000.0)7、查看變量類型的Python內(nèi)置函數(shù)是 。(type())8、查看變量?jī)?nèi)存地址的Python內(nèi)置函數(shù)是 。(id())9、以3為實(shí)部4為虛部,Python復(fù)數(shù)的表達(dá)形式為 或 。(3+4j、3+4J)10、Python運(yùn)算符中用來(lái)計(jì)算整商的是 。(//)11、語(yǔ)句x=3==3,5執(zhí)行結(jié)束后,變量x的值為 。((True,5))12、已知x=3,并且id(x)的返回值為496103280,那么執(zhí)行語(yǔ)句x+=6之后,表達(dá)式id(x)==496103280的值為 。(False)TOC\o"1-5"\h\z13、已知x=3,那么執(zhí)行語(yǔ)句x*=6之后,x的值為 。(18)\o"CurrentDocument"\h14、已知x=3和y=5,執(zhí)行語(yǔ)句x,y=y,x后x的值是 。(5)15、表達(dá)式0or5的值為 。(5)16、表達(dá)式3and5的值為 。(5)三、程序練習(xí)1.用戶通過(guò)鍵盤(pán)輸入兩個(gè)直角邊的長(zhǎng)度a和b,需要計(jì)算斜邊c的長(zhǎng)度,請(qǐng)用代碼實(shí)現(xiàn)此功能。請(qǐng)輸入直角a邊的值:請(qǐng)輸入直角b邊的值:c=(a**2+b**2)**(1/2)#就本題而言,使用數(shù)學(xué)模塊的sqrt()求平方根是比較好的寫(xiě)法斜邊長(zhǎng)度是2.編寫(xiě)一個(gè)程序,判定用戶輸入的兩個(gè)數(shù)a和b,如果用戶輸入的第一個(gè)數(shù)大,則兩數(shù)互換,如果相等或第一個(gè)數(shù)小,那原樣輸出。請(qǐng)輸入數(shù)a:請(qǐng)輸入數(shù)b:ifa>b:a,b=b,a用戶輸入的數(shù)按小到大排序結(jié)果是:elifa==b:用戶輸入的兩個(gè)數(shù)相同,輸入的數(shù)字是:else:用戶輸入的數(shù)按小到大排序結(jié)果是:#本題不考慮用戶需要的不是數(shù)字情況,在讀者學(xué)完異常處理后,建議回頭改寫(xiě)此題,實(shí)現(xiàn)異常處理。第三章一、判斷題1、在Python語(yǔ)言中,循環(huán)語(yǔ)句while的判斷條件為“1”是永真條件。(對(duì))2、if...else語(yǔ)句的嵌套完全可以代替if...elif語(yǔ)句。(對(duì))3、break語(yǔ)句用在循環(huán)語(yǔ)句中,可以跳出二重循環(huán)結(jié)構(gòu)。(錯(cuò))4、通過(guò)break語(yǔ)句跳出循環(huán)結(jié)構(gòu)后,循環(huán)控制變量的值一定大于其設(shè)定的終點(diǎn)值。(錯(cuò))5、在循環(huán)語(yǔ)句中,如果沒(méi)有子句else,也能同樣完成程序的功能。(對(duì))6、在條件表達(dá)式中不允許使用賦值運(yùn)算符“=”,會(huì)提示語(yǔ)法錯(cuò)誤。(對(duì))7、Pass語(yǔ)句的出現(xiàn)是為了保持程序結(jié)構(gòu)的完整性。(對(duì))8、Python中沒(méi)有switch-case語(yǔ)句。(對(duì))9、每一個(gè)if條件表達(dá)式后都要使用冒號(hào)。(對(duì))10、While循環(huán)不可以和for循環(huán)嵌套使用。(錯(cuò))11、如果僅僅是用于控制循環(huán)次數(shù),那么使用foriinrange(20)和foriinrange(20,40)的作用是等價(jià)的。(對(duì))12、在循環(huán)中continue語(yǔ)句的作用是跳出當(dāng)前循環(huán)。(錯(cuò))13、在編寫(xiě)多層循環(huán)時(shí),為了提高運(yùn)行效率,應(yīng)盡量減少內(nèi)循環(huán)中不必要的計(jì)算。(對(duì))14、帶有else子句的循環(huán)如果因?yàn)閳?zhí)行了break語(yǔ)句而退出的話,則會(huì)執(zhí)行else子句中的代碼。(錯(cuò))15、對(duì)于帶有else子句的循環(huán)語(yǔ)句,如果是因?yàn)檠h(huán)條件表達(dá)式不成立而自然結(jié)束循環(huán),則執(zhí)行else子句中的代碼。(對(duì))二、填空題1、在循環(huán)體中,可以使用 語(yǔ)句跳出循環(huán)體。(break)2、 語(yǔ)句是if語(yǔ)句和else語(yǔ)句的組合。(elif)3、在循環(huán)體中,可以使用 語(yǔ)句跳過(guò)本次循環(huán)后面的代碼,直接進(jìn)入下一次循環(huán)。(continue)4、Python中的 表示空語(yǔ)句。(pass)5、調(diào)試運(yùn)行時(shí),遇到死循環(huán)可以使用 退出循環(huán)。(ctrl+c)6、Python3.x語(yǔ)句foriinrange(3):print(i,end=',')的輸出結(jié)果為 。(0,1,2,)7、對(duì)于帶有else子句的for循環(huán)和while循環(huán),當(dāng)循環(huán)因循環(huán)條件不成立而自然結(jié)束時(shí) (會(huì)?不會(huì)?)執(zhí)行else中的代碼。(會(huì))8、在循環(huán)語(yǔ)句中, 語(yǔ)句的作用是提前結(jié)束本層循環(huán)。(break)9、在循環(huán)語(yǔ)句中, 語(yǔ)句的作用是提前進(jìn)入下一次循環(huán)。(continue)10、表達(dá)式5if5>6else(6if3>2else5)的值為 。(6)三、程序練習(xí)1.輸入兩個(gè)數(shù)x和y,如果x或y小于等于0,提示請(qǐng)輸入正整數(shù),求這兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)。【分析】設(shè)x為被除數(shù),y為除數(shù),a為余數(shù),采用歐幾里得輾轉(zhuǎn)相除算法來(lái)求最大公約數(shù)。x除以y得到余數(shù)a,如果a不等于0,把y賦值給x,把a(bǔ)賦值給y,繼續(xù)x除以y得到余數(shù)a,直接a等于0為止,這時(shí)的y就是最大公約數(shù)。最小公倍數(shù)的計(jì)算方法是兩數(shù)的乘積除以兩數(shù)最大公約數(shù)的結(jié)果?!静僮鲗?shí)踐】請(qǐng)輸入一個(gè)數(shù):

請(qǐng)輸入一個(gè)數(shù):t=x*yifx<y:x,y=y,xwhilex%y!=0:a=x%yx=yy=a最大公約數(shù):最小公倍數(shù):2.輸入一個(gè)數(shù),判斷是否為質(zhì)數(shù)。【分析】質(zhì)數(shù)是除了1和它本身以外任何數(shù)都不能整除他的數(shù),那求質(zhì)數(shù)時(shí),可以用這個(gè)數(shù)依次除比所輸入的數(shù)的平方根小的數(shù),如果不能除盡,那就是質(zhì)數(shù),否則不是質(zhì)數(shù)?!静僮鲗?shí)踐】請(qǐng)輸入一個(gè)數(shù):i=2whilei<int(x**(1/2)):ifx%i==0:不是質(zhì)數(shù)breaki+=1else:是質(zhì)數(shù)3輸入一個(gè)年份year,判斷是否為閏年?!痉治觥块c年能被4整除同時(shí)不能被100整除的數(shù),但如果能被400整除,也是閏年?!静僮鲗?shí)踐】輸入年份:#可用int()函數(shù)if(year%4==0andyear%100!=0)or(year%400==0):是閏年else:不是閏年第四章一、判斷題1、Python支持使用字典的“鍵”作為下標(biāo)來(lái)訪問(wèn)字典中的值。(對(duì))2、列表可以作為字典的“鍵”。(錯(cuò))3、元組可以作為字典的“鍵”。(對(duì))4、Python字典中的“鍵”不允許重復(fù)。(對(duì))5、Python字典中的“值”不允許重復(fù)。(錯(cuò))6、Python列表中所有元素必須為相同類型的數(shù)據(jù)。(錯(cuò))7、Python列表、元組、字符串都屬于有序序列。(對(duì))8、已知A和B是兩個(gè)集合,并且表達(dá)式A<B的值為False,那么表達(dá)式A>B的值一定為T(mén)rue。(錯(cuò))9、列表對(duì)象的append()方法屬于原地操作,用于在列表尾部追加一個(gè)元素。(對(duì))10、使用Python列表的方法insert()為列表插入元素時(shí)會(huì)改變列表中插入位置之后元素的索引。(對(duì))11、使用del命令或者列表對(duì)象的remove()方法刪除列表中元素時(shí)會(huì)影響列表中部分元素的索引。(對(duì))12、已知列表x=[1,2,3],那么執(zhí)行語(yǔ)句x=3之后,變量x的地址不變。(錯(cuò))13、使用列表對(duì)象的remove()方法可以刪除列表中首次出現(xiàn)的指定元素,如果列中不存在要?jiǎng)h除的指定元素則拋出異常。(對(duì))14、元組是不可變的,不支持列表對(duì)象的inset()、remove()等方法,也不支持del命令刪除其中的元素,但可以使用del命令刪除整個(gè)元組對(duì)象。(對(duì))15、當(dāng)以指定“鍵”為下標(biāo)給字典對(duì)象賦值時(shí),若該“鍵”存在則表示修改該“鍵”對(duì)應(yīng)的“值”,若不存在則表示為字典對(duì)象添加一個(gè)新的“鍵-值對(duì)”。(對(duì))16、假設(shè)x是含有5個(gè)元素的列表,那么切片操作x[10:]是無(wú)法執(zhí)行的,會(huì)拋出異常。(錯(cuò))17、只能對(duì)列表進(jìn)行切片操作,不能對(duì)元組和字符串進(jìn)行切片操作。(錯(cuò))18、只能通過(guò)切片訪問(wèn)列表中的元素,不能使用切片修改列表中的元素。(錯(cuò))19、表達(dá)式{1,3,2}>{1,2,3}的值為T(mén)rue。(錯(cuò))20、列表對(duì)象的extend()方法屬于原地操作,調(diào)用前后列表對(duì)象的地址不變。(對(duì))二、填空題1、表達(dá)式[1,2,3]*3的執(zhí)行結(jié)果為 。([1,2,3,1,2,3,1,2,3])2、表達(dá)式[3]in[1,2,3,4]的值為 。(False)3、列表對(duì)象的sort()方法用來(lái)對(duì)列表元素進(jìn)行原地排序,該函數(shù)返回值為 。(None)4、假設(shè)列表對(duì)象aList的值為[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是 。([6,7,9,11])5、使用列表推導(dǎo)式生成包含10個(gè)數(shù)字5的列表,語(yǔ)句可以寫(xiě)為 。([5foriinrange(10)])6、假設(shè)有列表a=['name','age','sex']和b=['小明',18,'男'],請(qǐng)使用一個(gè)語(yǔ)句將這兩個(gè)列表的內(nèi)容轉(zhuǎn)換為字典,并且以列表a中的元素為“鍵”,以列表b中的元素為“值”,這個(gè)語(yǔ)句可以寫(xiě)為 。(c=dict(zip(a,b)))7、任意長(zhǎng)度的Python列表、元組和字符串中最后一個(gè)元素的下標(biāo)為 。(-1)8、Python語(yǔ)句list(range(1,10,3))執(zhí)行結(jié)果為 。([1,4,7])9、表達(dá)式list(range(5))的值為 。([0,1,2,3,4])10、已知a=[1,2,3]和b=[1,2,4],那么id(a[1])==id(b[1]的)執(zhí)行結(jié)果為 。(True)11、切片操作list(range(6))[::2]執(zhí)行結(jié)果為 。([0,2,4])12、使用切片操作在列表對(duì)象x的開(kāi)始處增加一個(gè)元素3的代碼為 。(x[0:0]=[3])13、字典中多個(gè)元素之間使用 分隔開(kāi),每個(gè)元素的“鍵”與“值”之間使用 分隔開(kāi)。(逗號(hào)、冒號(hào))14、字典對(duì)象的 方法可以獲取指定“鍵”對(duì)應(yīng)的“值”,并且可以在指定“鍵”不存在的時(shí)候返回指定值,如果不指定則返回None。(get())15、字典對(duì)象的 方法返回字典中的“鍵-值對(duì)”列表。(items())16、字典對(duì)象的 方法返回字典的“鍵”列表。(keys())17、字典對(duì)象的 方法返回字典的“值”列表。(values())18、已知x={1:2},那么執(zhí)行語(yǔ)句x[2]=3之后,x的值為 。({1:2,2:3})19、表達(dá)式set([1,1,2,3])的值為 。({1,2,3})20、使用列表推導(dǎo)式得到100以內(nèi)所有能被13整除的數(shù)的代碼可以寫(xiě)作 。([iforiinrange(100)ifi%13==0])三、程序練習(xí)1.?dāng)?shù)據(jù)簡(jiǎn)單加密問(wèn)題。從前有一個(gè)稱為”rot13”的簡(jiǎn)單加密方法,原理是:對(duì)于一個(gè)報(bào)文中出現(xiàn)的任何字母用其后(字母順序)的第9個(gè)字母代替,循環(huán)實(shí)現(xiàn)。就是字母表的前9個(gè)字母用對(duì)應(yīng)的后9個(gè)字母表示。舉例說(shuō)明:字母'A'用'J'代替,'B'用'K'代替,...,'M'用'L',...,'Z'用'I';小寫(xiě)字母同樣類似。問(wèn)題是:用字符串給出一串報(bào)文,要求輸出這串報(bào)文的密文。首先建立一個(gè)字典,包含大小寫(xiě)52個(gè)字母作為鍵的字典,鍵對(duì)應(yīng)的值也是字母,就是要代替的字母。第二步是根據(jù)字符串中的字母,在字典中查找鍵并返回對(duì)應(yīng)的值。值記錄在一個(gè)列表中。第三步,根據(jù)列表將列表中的元素整合字符串,這個(gè)串就是密文?!緟⒖即a】請(qǐng)輸入一段英文: #原文l1=list(m1)l2=list(m2)dict1=dict(zip(m1,m2))字典1情況: #字典1情況list1=[]foriintxt:ifiindict1:data=dict1.get(i)else:data=ilist1.append(data)列表1情況: #列表1情況list2=['']foriinlist1:list2[0]=list2[0]+i

列表2情況:原文是:加密結(jié)果:列表2情況:原文是:加密結(jié)果:#列表2情況#原文#最終加密結(jié)果2.計(jì)算身份證的校驗(yàn)碼。計(jì)算身份證的校驗(yàn)碼,根據(jù)身份證的前17位,輸入數(shù)字,并將字符轉(zhuǎn)換為數(shù)字,根據(jù)給定的權(quán)值表及相應(yīng)的身份證檢驗(yàn)碼,進(jìn)行校驗(yàn)碼的計(jì)算?!痉治觥可矸葑C的校驗(yàn)碼計(jì)算過(guò)程如下:第一步:將身份證號(hào)碼的第1位數(shù)字與7相乘;將身份證號(hào)碼的第2位數(shù)字與9相乘;將身份證號(hào)碼的第3位數(shù)字與10相乘;將身份證號(hào)碼的第4位數(shù)字與5相乘;將身份證號(hào)碼的第5位數(shù)字與8相乘;將身份證號(hào)碼的第6位數(shù)字與4相乘;將身份證號(hào)碼的第7位數(shù)字與2相乘;將身份證號(hào)碼的第8位數(shù)字與1相乘;將身份證號(hào)碼的第9位數(shù)字與6相乘;將身份證號(hào)碼的第10位數(shù)字與3相乘;將身份證號(hào)碼的第11位數(shù)字與7相乘;將身份證號(hào)碼的第12位數(shù)字與9相乘;將身份證號(hào)碼的第13位數(shù)字與10相乘;將身份證號(hào)碼的第14位數(shù)字與5相乘;將身份證號(hào)碼的第15位數(shù)字與8相乘;將身份證號(hào)碼的第16位數(shù)字與4相乘;將身份證號(hào)碼的第17位數(shù)字與2相乘。第二步:將第一步身份證號(hào)碼1~17位相乘的結(jié)果求和,全部加起來(lái)。第三步:用第二步計(jì)算出來(lái)的結(jié)果除以11,這樣就會(huì)出現(xiàn)余數(shù)為0,余數(shù)為1,余數(shù)為2,余數(shù)為3,余數(shù)為4,余數(shù)為5,余數(shù)為6,余數(shù)為7,余數(shù)為8,余數(shù)為9,余數(shù)為10共11種可能性。第四步:如果余數(shù)為0,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為1;如果余數(shù)為1,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為0;如果余數(shù)為2,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為X;如果余數(shù)為3,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為9;如果余數(shù)為4,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為8;如果余數(shù)為5,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為7;如果余數(shù)為6,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為6;如果余數(shù)為7,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為5;如果余數(shù)為8,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為4;如果余數(shù)為9,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為3;如果余數(shù)為10,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為2?!緟⒖即a】str=input('輸入您的身份證前17位:')list1=list(str)foriinrange(17):list1[i]=eval(list1[i]) #將字符轉(zhuǎn)換為數(shù)字列表查看轉(zhuǎn)換的數(shù)據(jù)列表:wt=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]#定義權(quán)值表sum=0foriinrange(17):sum=sum+list1[i]*wt[i]身份證號(hào)碼1~17位相乘的結(jié)果和是:s=sum%11和除以11的余數(shù)為:#在下面的字典中,s的值作為鍵,對(duì)應(yīng)的值是身份證的校驗(yàn)碼dict1={0:'1',1:'0',2:'X',3:'9',4:'8',5:'7',6:'6',7:'5',8:'4',9:'3',10:'2'}ifsindict1:余數(shù)對(duì)應(yīng)的身份證校驗(yàn)碼為:3.設(shè)計(jì)一個(gè)字典dict1,name鍵為用戶名,pwd鍵為密碼。設(shè)計(jì)一個(gè)注冊(cè)登錄檢查程序,將用戶名和密碼注冊(cè)到字典中,然后進(jìn)行登錄,用戶名和密碼都正確時(shí)輸出“歡迎(用戶名)登錄”信息,用戶名或密碼不正確則提示“用戶或密碼錯(cuò)誤,請(qǐng)重新登錄!”。list1=[]dict1={}請(qǐng)注冊(cè)用戶名:請(qǐng)?zhí)砑用艽a:list1.append(dict1)print(list1)保存的字典數(shù)據(jù)是:請(qǐng)登錄:請(qǐng)輸入登錄的用戶名

請(qǐng)輸入登錄的密碼:f=Falseforiinlist1:f=True歡迎%s登錄iff==False:用戶或密碼錯(cuò)誤,請(qǐng)重新登錄!第五章一、判斷題1、函數(shù)是代碼復(fù)用的一種方式。(對(duì))2、定義函數(shù)時(shí),即使該函數(shù)不需要接收任何參數(shù),也必須保留一對(duì)空的圓括號(hào)來(lái)表示這是一個(gè)函數(shù)。(對(duì))3、一個(gè)函數(shù)如果帶有默認(rèn)值參數(shù),那么必須所有參數(shù)都設(shè)置默認(rèn)值。(錯(cuò))4、定義Python函數(shù)時(shí),如果函數(shù)中沒(méi)有return語(yǔ)句,則默認(rèn)返回空值None。(對(duì))5、如果在函數(shù)中有語(yǔ)句return3,那么該函數(shù)一定會(huì)返回整數(shù)3。(錯(cuò))6、在調(diào)用函數(shù)時(shí),可以通過(guò)關(guān)鍵參數(shù)的形式進(jìn)行傳值,從而避免必須記住函數(shù)形參順序的麻煩。(對(duì))7、不同作用域中的同名變量之間互相不影響,也就是說(shuō),在不同的作用域內(nèi)可以定義同名的變量。(對(duì))8、全局變量會(huì)增加不同函數(shù)之間的隱式耦合度,從而降低代碼可讀性,因此應(yīng)盡量避免過(guò)多使用全局變量。(對(duì))9、在函數(shù)內(nèi)部,既可以使用global來(lái)聲明使用外部全局變量,也可以使用global直接定義全局變量。(對(duì))10、在函數(shù)內(nèi)部沒(méi)有辦法定義全局變量。(錯(cuò))11、在函數(shù)內(nèi)部直接修改形參的值并不影響外部實(shí)參的值。(對(duì))12、調(diào)用帶有默認(rèn)值參數(shù)的函數(shù)時(shí),不能為默認(rèn)值參數(shù)傳遞任何值,必須使用函數(shù)定義時(shí)設(shè)置的默認(rèn)值。(錯(cuò))13、在同一個(gè)作用域內(nèi),局部變量會(huì)隱藏同名的全局變量。(對(duì))14、形參可以看作是函數(shù)內(nèi)部的局部變量,函數(shù)運(yùn)行結(jié)束之后形參就不可訪問(wèn)了。(對(duì))15、在函數(shù)內(nèi)部沒(méi)有任何聲明的情況下直接為某個(gè)變量賦值,這個(gè)變量一定是函數(shù)內(nèi)部的局部變量。(對(duì))16、定義函數(shù)時(shí),帶有默認(rèn)值的參數(shù)必須出現(xiàn)在參數(shù)列表的最右端,任何一個(gè)帶有默認(rèn)值的參數(shù)右邊不允許出現(xiàn)沒(méi)有默認(rèn)值的參數(shù)。(對(duì))17、無(wú)法使用lambda表達(dá)式定義有名字的函數(shù)。(錯(cuò))18、調(diào)用函數(shù)時(shí)傳遞的實(shí)參個(gè)數(shù)必須與函數(shù)形參個(gè)數(shù)相等才行。(錯(cuò))19、lambda表達(dá)式中可以使用任意復(fù)雜的表達(dá)式,但是必須只編寫(xiě)一個(gè)表達(dá)式。(對(duì))20、g=lambdax:3不是一個(gè)合法的賦值表達(dá)式。(錯(cuò))二、填空題1、Python中定義函數(shù)的關(guān)鍵字是 。(def)2、在函數(shù)內(nèi)部可以通過(guò)關(guān)鍵字 來(lái)定義全局變量。(global)3、如果函數(shù)中沒(méi)有return語(yǔ)句或者return語(yǔ)句不帶任何返回值,那么該函數(shù)的返回值為 。(None)4、表達(dá)式sum(range(1,10,2))的值為 。(25)5、表達(dá)式list(filter(lambdax:x%2==0,range(10)))的值為 。([0,2,4,6,8])6、已知g=lambdax,y=3,z=5:x*y*z,則語(yǔ)句print(g(1))的輸出結(jié)果為 。(15)7、表達(dá)式sorted(['abc','acd','ade'],key=lambdax:(x[0],x[2]))的值為 。(['abc','acd','ade'])TOC\o"1-5"\h\z8、已知函數(shù)定義defdemo(x,y,op):returneval(str(x)+op+str(y)),那么表達(dá)式demo(3,5,'+')的值為 。(8)9、已知函數(shù)定義defdemo(x,y,op):returneval(str(x)+op+str(y)),那么表達(dá)式demo(3,5,'*')的值為 。(15)10、已知函數(shù)定義deffunc(*p):returnsum(p),那么表達(dá)式func(1,2,3)的值為 。(6)11、已知函數(shù)定義deffunc(*p):returnsum(p),那么表達(dá)式func(1,2,3,4)的值為 。(10)12、已知函數(shù)定義deffunc(**p):returnsum(p.values()),那么表達(dá)式func(x=1,y=2,z=3)的值為 。(6)13、已知函數(shù)定義deffunc(**p):return''.join(sorted(p)),那么表達(dá)式func(x=1,y=2,z=3)的值為 。('xyz')14、已知f=lambdax:5,那么表達(dá)式f(3)的值為 。(5)15、已知g=lambdax,y=3,z=5:x+y+z,那么表達(dá)式g(2)的值為 。(10)三、程序練習(xí)1.編寫(xiě)函數(shù),判斷用戶輸入的兩個(gè)數(shù)的最小公倍數(shù)。最小公倍數(shù)的分析,見(jiàn)第三章課后習(xí)題1deffunc(m,n):t=m*nifm<n:m,n=n,mwhilem%n!=0:a=m%nm=nn=areturnt//n請(qǐng)輸入一個(gè)數(shù):請(qǐng)輸入一個(gè)數(shù):和%d的最小公倍數(shù)是:2.請(qǐng)用函數(shù)實(shí)現(xiàn)一個(gè)判斷用戶輸入的年份是否是閏年的程序defLyear(m):if(m%4==0andm%100!=0)or(m%400==0):是閏年else:不是閏年輸入年份:Lyear(x)3.定義一個(gè)函數(shù),計(jì)算用戶輸入的數(shù)n的階乘n!=1*2*3*…*ndeffunc(n):ifn==1:result=1else:result=func(n-1)*nreturnresult請(qǐng)輸入一個(gè)正整數(shù):第六章一、判斷題1、模塊就是一個(gè)普通的Python程序文件。(對(duì))2、模塊文件的擴(kuò)展名可以是txt。(錯(cuò))3、Python運(yùn)行時(shí)只會(huì)從指定的目錄搜索導(dǎo)入的模塊。(對(duì))4、任何一個(gè)普通的python文件都可以作為模塊導(dǎo)入。(對(duì))5、模塊是一個(gè)可共享的程序。(對(duì))6、Python,包可以是一個(gè)任何目錄。(錯(cuò))7、Python中,包可以嵌套。(對(duì))8、包目錄中的__init__.py文件內(nèi)容可以為空。(對(duì))9、json字符串可以轉(zhuǎn)化為python類型,反過(guò)來(lái)也同樣可以。(對(duì))10、包是比模塊更大的組織單位,一個(gè)包內(nèi)可以包含多個(gè)模塊。創(chuàng)建包的方法是:在Python的工作目錄下的LIB子目錄中建立一個(gè)目錄,這個(gè)建立的目錄名就是包的名字。將模塊置入包(目錄)內(nèi)。 (對(duì))二、填空題1、在使用數(shù)學(xué)函數(shù)時(shí),需要先導(dǎo)入模塊,可以使用的命令是 或 。((importmath)(frommathimport*))2、在程序中,使用時(shí)間函數(shù)的代碼是t.time(),請(qǐng)寫(xiě)出模塊導(dǎo)入的代碼 。(importtimeast)3、json字符串可以轉(zhuǎn)化為python類型,其方法是 。(json.loads())4、python類型可以轉(zhuǎn)化為json字符串,其方法是 。(json.dumps())5、獲取當(dāng)前時(shí)間,獲取的時(shí)間使用時(shí)間元組方式展示,其函數(shù)是 。(time.localtime())6、獲取本地的日期和時(shí)間的代碼是 。(time.time())7、用戶可以自行創(chuàng)建模塊,方法是將自己的程序文件復(fù)制到Python的工作目錄下的LIB子目錄,用 命令導(dǎo)入即可。(import)8、使用importmathasmymath時(shí),使用模塊math中的求平方根的sqrt()方法是 。(mymath.sqrt())9、時(shí)間間隔是以 為單位的浮點(diǎn)小數(shù)。(秒)10、作為包中的目錄,要包含特殊的 文件。(__init__.py)第七章一、判斷題1、面向?qū)ο蟪绦蛘Z(yǔ)言的三個(gè)基本特征是:封裝、繼承與多態(tài)。(對(duì))2、構(gòu)造器方法__init__()是Python語(yǔ)言的構(gòu)造函數(shù)。 (對(duì))3、在Python語(yǔ)言的面向?qū)ο蟪绦蛑校瑢傩杂袃煞N,類屬性和實(shí)例屬性,它們分別通過(guò)類和實(shí)例訪問(wèn)。 (對(duì))4、使用實(shí)例或類名訪問(wèn)類的數(shù)據(jù)屬性時(shí),結(jié)果不一樣。 (對(duì))5、解構(gòu)器方法__del__()是Python語(yǔ)言的析構(gòu)函數(shù)。 (對(duì))6、在Python語(yǔ)言中,運(yùn)算符是可以重載的。(對(duì))7、子類只能從一個(gè)基類繼承。(錯(cuò))8、在Python語(yǔ)言中,函數(shù)重載只考慮參數(shù)個(gè)數(shù)不同的情況。(對(duì))9、在Python語(yǔ)言中,子類中的同名方法將自動(dòng)覆蓋父類的同名方法。(對(duì))10、Python語(yǔ)言類中定義的函數(shù)會(huì)有一個(gè)名為self的參數(shù),調(diào)用函數(shù)時(shí),不傳實(shí)參給self,所以,調(diào)用函數(shù)的實(shí)參個(gè)數(shù)比函數(shù)的形參個(gè)數(shù)少1。 (對(duì))二、填空題1、Python使用 關(guān)鍵字來(lái)定義類。(class)2、類由 、 、 3個(gè)部分構(gòu)成:(類名、類的屬性、類的方法)3、現(xiàn)有一個(gè)類Student,現(xiàn)要為該類定義對(duì)象stu,代碼是 。(stu=Student())4、面向?qū)ο缶幊痰奶匦允?、 、 。(封裝、繼承、多態(tài))5、在Python中,不論類的名字是什么,構(gòu)造方法的名字都是 。(__init__)6、繼承和 是實(shí)現(xiàn)多態(tài)的技術(shù)基礎(chǔ)。(方法重寫(xiě))7、面向?qū)ο蟮木幊處?lái)的主要好處之一是代碼的重用,實(shí)現(xiàn)這種重用的方法是通過(guò)使用函數(shù)或 。(繼承)8、類方法必須包含參數(shù) ,且為第一個(gè)參數(shù)。(self)9、封裝是在變量或方法名前加 ,封裝后,私有的變量或方法只能在定義它們的類內(nèi)部調(diào)用,在類外和子類中不能直接調(diào)用。(__或雙下劃線)10、Python運(yùn)算符重載就是通過(guò)重寫(xiě)相關(guān)Python內(nèi)置方法實(shí)現(xiàn)的。這些方法都是以 開(kāi)頭和結(jié)尾的。(__或雙下劃線)三、程序練習(xí)現(xiàn)成立學(xué)生競(jìng)賽小組,名額三人,讓學(xué)生進(jìn)行報(bào)名。可以單個(gè)報(bào)名,也可以幾人同時(shí)報(bào)名,同時(shí)報(bào)名人數(shù)不得超過(guò)空余名額數(shù)。報(bào)名滿了后不再接受報(bào)名。要求:1、顯示學(xué)生競(jìng)賽小組的空余名額、成員名單。2、學(xué)生報(bào)名人數(shù)及名單,如:第一次,“張三”一人報(bào)名;第二次“李力、王明”二人報(bào)名;第三次,“劉紅”一人報(bào)名。如果人數(shù)小于等于空余人數(shù),則添加報(bào)名人數(shù)和名單到競(jìng)賽小組中;如果超過(guò)空余人數(shù),則提示錯(cuò)誤。請(qǐng)將用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)程序并編碼實(shí)現(xiàn)。#定義一個(gè)學(xué)生競(jìng)賽小組類classclasses:def__init__(self,Num):self.Num=Num#學(xué)生小組剩余名額self.containsItem=[]def__str__(self):當(dāng)前學(xué)習(xí)小組空余人數(shù)為iflen(self.containsItem)>0:包括的學(xué)生有fortempinself.containsItem:returnmsg#包含學(xué)生defstuNum(self,item):#如果學(xué)生小組空余名額大于學(xué)生人數(shù)needNum=item.getUsedNum()ifself.Num>=needNum:self.containsItem.append(item)self.Num-=needNum參加成功else:錯(cuò)誤:學(xué)生競(jìng)賽小組空余名額:%d,但是要參加的學(xué)生人數(shù)為#定義報(bào)名學(xué)生類classStu:def__init__(self,Num,name='張三'):=nameself.Num=Numdef__str__(self):msg='學(xué)生報(bào)名人數(shù):'+str(self.Num)returnmsg#獲取學(xué)生的人數(shù)defgetUsedNum(self):returnself.Num#獲取學(xué)生的人數(shù)defgetName(self):創(chuàng)建一個(gè)新小組對(duì)象newclasses=classes(3)#學(xué)習(xí)小組3個(gè)名額print(newclasses)創(chuàng)建學(xué)生報(bào)名數(shù)對(duì)象newStu=Stu(1)print(newStu)報(bào)名到小組里newclasses.stuNum(newStu)print(newclasses)創(chuàng)建第二組學(xué)生對(duì)象newStu2=Stu(2,'李力,王明')print(newStu2)把報(bào)名到小組里newclasses.stuNum(newStu2)print(newclasses)創(chuàng)建第三組學(xué)生對(duì)象newStu2=Stu(1,'劉紅')print(newStu2)#把報(bào)名到小組里newclasses.stuNum(newStu2)print(newclasses)第八章一、判斷題1、順序讀寫(xiě)文件與隨機(jī)讀寫(xiě)文件是兩種讀寫(xiě)文件的方式,它們的區(qū)別依靠設(shè)置讀寫(xiě)指針位置的方法seek()實(shí)現(xiàn),與open()函數(shù)中的打開(kāi)方式無(wú)關(guān)。(錯(cuò))2、open()函數(shù)用于建立文件對(duì)象,建立文件與內(nèi)存緩沖區(qū)的聯(lián)系??梢杂糜谖谋疚募投M(jìn)制文件,打開(kāi)方式是指只讀、讀寫(xiě)、添加、修改等。(對(duì))3、如果open()函數(shù)的打開(kāi)方式是'r+b',說(shuō)明是打開(kāi)一個(gè)可隨機(jī)讀寫(xiě)的二進(jìn)制文件。(對(duì))4、open()函數(shù)的打開(kāi)方式'r+b'中的加號(hào)(+)沒(méi)有實(shí)際意義。(錯(cuò))5、文件對(duì)象的方法close()用于關(guān)閉文件,在實(shí)際操作中,不這樣做,程序運(yùn)行也正常,這說(shuō)明有無(wú)文件關(guān)閉操作都可行。(錯(cuò))6、read()函數(shù)可以讀出文件中的數(shù)據(jù),讀出的字節(jié)數(shù)量由用戶指定。指定多少合適呢?最合適的選擇是:盡可能一次性讀完文件所有內(nèi)容(有必要時(shí)),不能一次性讀完時(shí),每讀出的數(shù)量以內(nèi)存緩沖區(qū)大小為準(zhǔn)。(對(duì))7、Python關(guān)于文件的讀寫(xiě)缺少一個(gè)指示文件尾的方法eof(),要判斷是否讀到文件尾部用讀出內(nèi)容為空表示。 (對(duì))二、填空題1、Python內(nèi)置函數(shù) 用來(lái)打開(kāi)或創(chuàng)建文件并返回文件對(duì)象。(open())2、使用上下文管理關(guān)鍵字 可以自動(dòng)管理文件對(duì)象,不論何種原因結(jié)束該關(guān)鍵字中的語(yǔ)句塊,都能保證文件被正確關(guān)閉。(with)3、Python標(biāo)準(zhǔn)庫(kù)os中用來(lái)列出指定文件夾中的文件和子文件夾列表的方式是 。(listdir())4、Python標(biāo)準(zhǔn)庫(kù)os.path中用來(lái)判斷指定文件是否存在的方法是 。(exists())5、Python標(biāo)準(zhǔn)庫(kù)os.path中用來(lái)判斷指定路徑是否為文件的方法是 (isfile())6、Python標(biāo)準(zhǔn)庫(kù)os.path中用來(lái)判斷指定路徑是否為文件夾的方法是 (isdir())7、Python標(biāo)準(zhǔn)庫(kù)os.path中用來(lái)分割指定路徑中的文件擴(kuò)展名的方法是 。(splitext())8、Python擴(kuò)展庫(kù) 支持Excel2007或更高版本文件的讀寫(xiě)操作。(openpyxl)9、已知當(dāng)前文件夾中有純英文文本文件readme.txt,請(qǐng)?zhí)羁胀瓿晒δ馨裷eadme.txt文件中的所有內(nèi)容復(fù)制到dst.txt中,withopen('readme.txt')assrc,open('dst.txt', )asdst:dst.write(src.read())。('w')10、csv模塊中,使用csv.reader函數(shù),讀取csv文件,轉(zhuǎn)存的結(jié)果類型是 。(列表)三、程序練習(xí)備份8.6節(jié)中的stu_info.txt數(shù)據(jù)文檔,要求用戶輸入備份文件名進(jìn)行備份操作。請(qǐng)輸入要拷貝的文件名字old_File=open(oldFileName,'r')如果打開(kāi)文件ifold_File:提取文件的后綴fileFlagNum=old_Name.rfind('.')iffileFlagNum>0:fileFlag=old_Name[fileFlagNum:]備份文件的文件名new_Name=old_Name[:fileFlagNum]+'[備份]'+fileFlag創(chuàng)建新文件new_File=open(new_Name,'w')把舊文件中的數(shù)據(jù),一行一行的進(jìn)行復(fù)制到新文件中forlineContentinold_File.readlines():new_File.write(lineContent)#關(guān)閉文件old_File.close()new_File.close()第九章一、判斷題1、所有程序錯(cuò)誤都可以用異常控制、解決。(錯(cuò))2、try...except語(yǔ)句與try...finally語(yǔ)句的區(qū)別在于:前者在有異常時(shí)執(zhí)行except下的語(yǔ)句,而后者無(wú)論有無(wú)異常,都執(zhí)行finally子句下面的語(yǔ)句。(對(duì))3、try...except...else語(yǔ)句、try...except語(yǔ)句的結(jié)構(gòu)類似于if...else語(yǔ)句、TOC\o"1-5"\h\zif...語(yǔ)句的結(jié)構(gòu)。 (對(duì))4、帶有多個(gè)except子句的try語(yǔ)句或try...else語(yǔ)句中,每個(gè)except子句可以處理多種異常。 (錯(cuò))5、帶有多個(gè)except子句的try語(yǔ)句或try...else語(yǔ)句中,每個(gè)except子句下面語(yǔ)句塊的最后一個(gè)語(yǔ)句必須是break語(yǔ)句。(錯(cuò))6、捕獲所有異常Exception沒(méi)有必要。 (錯(cuò))7、raise語(yǔ)句用于程序員編寫(xiě)的應(yīng)用程序中,由應(yīng)用程序自己引發(fā)異常,這是沒(méi)有必要的語(yǔ)句。(錯(cuò))8、如果程序語(yǔ)言沒(méi)有異常處理語(yǔ)句,程序員就沒(méi)有辦法控制異常。(錯(cuò))9、異常只有在程序運(yùn)行出錯(cuò)時(shí)才可以引發(fā)。(錯(cuò))10、異常(Exception)是程序的執(zhí)行過(guò)程中用來(lái)解決錯(cuò)誤、避免直接終止程序運(yùn)行的手段。(對(duì))二、填空題1、異常的檢測(cè)與處理是用 語(yǔ)句實(shí)現(xiàn)完成的。(try)2、 語(yǔ)句用于程序員編寫(xiě)的應(yīng)用程序中,由應(yīng)用程序自己引發(fā)異常。(raise)3、try...finally語(yǔ)句無(wú)論有無(wú)異常,都執(zhí)行 子句下面的語(yǔ)句。(finally)4、最頂層的異常是 。(BaseException)5、 是BaseException的下層異常。(Exception)6、用戶需要知道錯(cuò)誤信息的情況,此時(shí)可以使用 獲取系統(tǒng)反饋的信息。(as)7、 語(yǔ)句用來(lái)收集用戶定義的約束條件,而不是捕捉內(nèi)在的程序錯(cuò)誤。8、 語(yǔ)句也叫斷言,是期望用戶滿足指定條件(assert)9、python的異常有個(gè)大基類,繼承的是 。(Exception)10、with語(yǔ)句中的表達(dá)式稱為 。(上下文表達(dá)式)三、程序練習(xí)錄入學(xué)生的計(jì)算機(jī)考試成績(jī),顯示優(yōu)秀、良好、及格、不及格四種情況四種情況分別對(duì)應(yīng)如下:85分以上(含85分),優(yōu)秀;75分-84分,良好;60分-74分,及格;60分以下,不及格。要求將學(xué)生成績(jī)打印出來(lái),顯示為優(yōu)秀、良好、及格、不及格四種情況使用assert斷言處理分?jǐn)?shù)輸入不正確的情況。try:請(qǐng)輸入學(xué)生計(jì)算機(jī)考試成績(jī):分?jǐn)?shù)必須是數(shù)字,在0到100之間#斷言if100>=score>=85:成績(jī)優(yōu)秀!elif85>score>=75:成績(jī)良好!elif75>score>=60:成績(jī)及格!else:成績(jī)不及格!exceptExceptionasresult:捕捉到異常第十章一、判斷題1、Python中,不同的數(shù)據(jù)庫(kù)需要下載不同的PythonDBAPI模塊。(對(duì))2、MySql所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用的標(biāo)準(zhǔn)化語(yǔ)言。(對(duì))3、MySql是當(dāng)前流行的關(guān)系數(shù)據(jù)庫(kù),所以Python可以直接使用MySql。(錯(cuò))4、Python中,Connection對(duì)象用于打開(kāi)數(shù)據(jù)庫(kù)連接。(對(duì))5、Python中,Cursor對(duì)象用于執(zhí)行查詢和獲取結(jié)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論