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