Python測試(總分:120)
1.下列哪個語句在Python中是非法的? (B) A、x = y = z = 1 B、x = (y = z + 1) C、x, y = y, x D、x += y x=x+y 2.關(guān)于Python內(nèi)存管理,下列說法錯誤的是 (B) A、變量不必事先聲明 B、變量無須先創(chuàng)建和賦值而直接使用 C、變量無須指定類型 D、可以使用del釋放資源 3.print 100 - 25 * 3 % 4 應(yīng)該輸出什么? (B) 4、下面哪個不是Python合法的標(biāo)識符 (B) A、int32 B、40XL C、self D、__name__ 5、下列哪種說法是錯誤的 (A) A、除字典類型外,所有標(biāo)準(zhǔn)對象均可以用于布爾測試 B、空字符串的布爾值是False C、空列表對象的布爾值是False D、值為0的任何數(shù)字對象的布爾值是False 6、下列表達(dá)式的值為True的是 (C) A、5+4j > 2-3j B、3>2>2
7、Python不支持的數(shù)據(jù)類型有 (A) A、char B、int C、float D、list 8、以下不能創(chuàng)建一個字典的語句是 (C) A、dict1 = {} B、dict2 = { 3 : 5 } C、dict3 = dict( [2 , 5] ,[ 3 , 4 ] ) D、dict4 = dict( ( [1,2],[3,4] ) ) 9、下面不能創(chuàng)建一個集合的語句是 (C) A、s1 = set () B、s2 = set (“abcd”) C、s3 = (1, 2, 3, 4) D、s4 = frozenset( (3,2,1) ) 10、下列Python語句正確的是 (D) A、min = x if x < y else y B、max = x > y and x : y C、if (x > y) print x D、while True : pass 二.填空(每空一分,共10分) 設(shè)L=[‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’,’g’],則L[3]值是_d___ L[3:5]值是__[‘d’,’e’]_ L[:5]值是__[‘a(chǎn)’,’b’,’c’,’d’,’e’]_ L[3:]值是__[’d’,’e’,’f’,’g’]_ L[-5:-2]值是__[’c’,’d’,’e’]_ L[::2]值是__[‘a(chǎn)’,’c’,’e’,’g’]_ Python中可變數(shù)據(jù)類型有__list___和___dict__,不可變數(shù)據(jù)類型有___int___和__str___ 三、簡答題(每題5分,共45分) 1 聲明變量注意事項有那些? 答: 1.以字母、數(shù)字、下劃線組成,不能以數(shù)字開頭; 2.不能用關(guān)鍵字。 2 簡述 對象和 類的關(guān)系? 答: 類:抽象的,只有一個,一類事物的總稱; 對象:實體的,可以有多個,是類的具體實現(xiàn)。 3 Python里面如何實現(xiàn)tuple和list的轉(zhuǎn)換? 答:tuple(list) list(tuple)
答: 與try語句連用,如果try語句正確,則不會執(zhí)行except語句; 如果try語句錯誤,則跳轉(zhuǎn)到except語句,和except語句后的錯誤類型進(jìn)行匹配,錯誤類型一致,則輸出相應(yīng)except語句下的內(nèi)容。如果都不匹配,則再一次執(zhí)行try語句,并且報錯; 如果后面有else語句,在try語句正確的情況下執(zhí)行; 如果后面有finally語句,一定執(zhí)行; 5 Dict特點? 答: 1.key不重復(fù),不可變;
3.可變數(shù)據(jù)類型。 6 List 和tuple 區(qū)別 答: 相同點:都是有序集合 異同點:1. list是可變數(shù)據(jù)類型,tuple是不可變數(shù)據(jù)類型; 2.定義方式:list[] tuple() 3.list 有append(),insert()等方法;tuple沒有 7 定義函數(shù)的規(guī)則是? 答: 以def開頭,后接函數(shù)名和 ’():’,有參數(shù)寫在()中,下一行縮進(jìn),如果有返回值則寫在return后面。 8 面向?qū)ο笳Z言都有封裝,繼承,多態(tài),分別描述 封裝,繼承,多態(tài)的含義和作用? 答: 封裝:把類的屬性賦予給對象 作用:方便調(diào)用 繼承:子類繼承父類的屬性和方法 作用:減少代碼量 多態(tài):一類事物的多種表現(xiàn)形式,父類的實現(xiàn)指向子類的引用,需要利用繼承,方法重寫,重載等方法 作用:減少代碼量 9 在python中f = open('d:/a.txt', 'r')讀取文件需要注意哪些 答: f是變量。open是打開文件,如果文件不存在,則創(chuàng)建后再打開。‘d:/a.txt’是文件路勁,代表d盤中一個名為‘a(chǎn).txt’的文件,’r’是以讀的方式打開。 三 編程題(每題5分,共25分) 1 .實現(xiàn)登錄功能(一個需求2分 ,共4分) 需求 1 實現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名為 admin且 密碼為 123 時,顯示登陸成功,否則登陸失敗! 答: name = input(‘請輸入用戶名:’) pw = input(‘請輸入用戶密碼:’) if (name == ‘a(chǎn)dmin’)and (pw == ‘123’): print(‘登錄成功’) else: Print(‘登錄失敗’) 需求2 實現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重復(fù)輸入三次 答: for i in range(3): name = input(‘請輸入用戶名:’) pw = input(‘請輸入用戶密碼:’) f (name == ‘a(chǎn)dmin’)and (pw == ‘123’): print(‘登錄成功’) break else: print(‘登錄失敗’) 2 寫代碼,有如下變量,請按照要求實現(xiàn)每個功能(0.5分一個,共4分) name = ' aleX is a man'
print(name.strip(‘ ’))
print(name.count(‘a(chǎn)’)) 3. 判斷 name 變量對應(yīng)的值以a進(jìn)行分割,并輸出結(jié)果 print(name.split(‘a(chǎn)’)) 4. 將 name 變量對應(yīng)的值a替換成w,并輸出結(jié)果 print(name.replace(‘a(chǎn)’,’w’)) 5. 將 name 變量對應(yīng)的值變小寫,并輸出結(jié)果 print(name.lower()) 6. 請輸出 name 變量對應(yīng)的值的第 2 個字符? print(name[1]) 7. 請輸出 name 變量對應(yīng)的值的前 3 個字符? print(name[:3]) 8. 請輸出 name 變量對應(yīng)的值的后 2 個字符? print(name[-2:])
答: a = input(‘請輸入一個字符串:’) b = a.upper() f = open(‘d:/test/b.txt’,’w+’) f.write(b) 4 請用循環(huán)的方式輸出九九乘法表 答: for i in range(1,10): for j in range(1,10): if j <= i: print(j,'*',i,'=',(i*j)) 5.輸入一個六位數(shù),求各位數(shù)之和,如果各位數(shù)之和為36-45,則此數(shù)字為幸運數(shù)字。 答: a = int(input(‘請輸入一個六位數(shù):’)) if len(str(a)) == 6: ge == a%10 ten == a%100//10 hu == a%1000//100 th == a%10000//1000 wan == a//10000%10 tw == a//100000 if (ge+ten+hu+th+wan+tw) >= 36 and (ge+ten+hu+th+wan+tw)<= 45: Print(a,‘為幸運數(shù)字’) else: print(‘您輸入的位數(shù)有誤,請重新輸入。。。’) 6 某個公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。試輸入一個數(shù),并求出對應(yīng)的數(shù)字。(8分) 答: num = int(input('請輸入一個四位數(shù):')) if len(str(num)) == 4: ge = num % 10 ten = num%100//10 hu = num//100%10 th = num // 1000 ge1 = ge + 5 ge2 = ge1 % 10 ten1 = ten + 5 ten2 = ten1 % 10 hu1 = hu + 5 hu2 = hu1 % 10 th1 = th + 5 th2 = th1 % 10 print(‘加密后的數(shù)為:’,int((str(ge2)+str(ten2)+str(hu2)+str(hu2)))) else: print('您輸入的位數(shù)有誤,請重新輸入') 7.一:定義一個學(xué)生類。有下面的類屬性:(12分) 1 姓名 2 年齡 3 成績(語文,數(shù)學(xué),英語)[每課成績的類型為整數(shù)] 類方法: 1 獲取學(xué)生的姓名:get_name() 返回類型:str 2 獲取學(xué)生的年齡:get_age() 返回類型:int 3 返回3門科目中最高的分?jǐn)?shù)。get_course() 返回類型:int 寫好類以后,可以定義2個同學(xué)測試下: zm = Student('zhangming',20,[69,88,100]) 返回結(jié)果: Zhangming 20 100 答: class Student(): def __init__(self,name,age,score): self.name = name self.age = age self.score = score def get_name(self): print(‘學(xué)生姓名:’,self.name) def get_age(self): print(‘學(xué)生年齡:’,self.age) def get_course(self): print(‘最高的分?jǐn)?shù):’,max(self.score)) zm = Student(‘張明’,20,[69,88,100]) zm.get_name() zm.get_age() zm.get_course() |
|
來自: Four兄 > 《Python筆記》