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

下載本文檔

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

文檔簡介

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

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

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

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論