侵權聯系我删除:
【寫在這裡,友善右鍵百度搜尋!】
《Python程式設計》題庫
- 填空題
- Python安裝擴充庫常用的是_______工具。(pip)
- Python标準庫math中用來計算平方根的函數是__________。(sqrt)
- Python程式檔案擴充名主要有__________和________兩種,其中後者常用于GUI程式。(py、pyw)
- Python源代碼程式編譯後的檔案擴充名為_________。(pyc)
- 使用pip工具更新科學計算擴充庫numpy的完整指令是_________________。(pip install --upgrade numpy)

- 使用pip工具檢視目前已安裝的Python擴充庫的完整指令是_____________。(pip list)
- 在IDLE互動模式中浏覽上一條語句的快捷鍵是__________。(Alt+P)
- 使用pip工具檢視目前已安裝Python擴充庫清單的完整指令是_________。(pip list)
- 在Python中__________表示空類型。(None)
- 清單、元組、字元串是Python的_________(有序?無序)序列。(有序)
- 檢視變量類型的Python内置函數是________________。(type())
- 檢視變量記憶體位址的Python内置函數是_________________。(id())
- 以3為實部4為虛部,Python複數的表達形式為___________或________。(3+4j、3+4J)
- Python運算符中用來計算整商的是_________。(//)
- Python運算符中用來計算集合并集的是_______。(|)
- 使用運算符測試集合包含集合A是否為集合B的真子集的表達式可以寫作_______。(A<B)
- 表達式[1, 2, 3]*3的執行結果為______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3])
- list(map(str, [1, 2, 3]))的執行結果為_____________________。([‘1’, ‘2’, ‘3’])
- 語句x = 3==3, 5執行結束後,變量x的值為_____________。((True, 5))
-
《Python程式設計》題庫(2) - 已知 x = 3,那麼執行語句 x += 6 之後,x的值為_______________。(9)
- 已知 x = 3,并且id(x)的傳回值為 496103280,那麼執行語句 x += 6 之後,表達式 id(x) == 496103280 的值為___________。(False)
- 已知 x = 3,那麼執行語句 x *= 6 之後,x的值為________________。(18)
- 為了提高Python代碼運作速度和進行适當的保密,可以将Python程式檔案編譯為擴充名__________的檔案。(pyc)
- 表達式“[3] in [1, 2, 3, 4]”的值為________________。(False)
- 清單對象的sort()方法用來對清單元素進行原地排序,該函數傳回值為 。(None)
- 假設清單對象aList的值為[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那麼切片aList[3:7]得到的值是______________________。([6, 7, 9, 11])
- 使用清單推導式生成包含10個數字5的清單,語句可以寫為_______________。([5 for i in range(10)])
- 假設有清單a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],請使用一個語句将這兩個清單的内容轉換為字典,并且以清單a中的元素為“鍵”,以清單b中的元素為“值”,這個語句可以寫為_____________________。(c = dict(zip(a, b)))
- 任意長度的Python清單、元組和字元串中最後一個元素的下标為________。(-1)
- Python語句''.join(list('hello world!'))執行的結果是____________________。('hello world!')
- 轉義字元r’\n’的含義是___________________。(回車換行)
- Python語句list(range(1,10,3))執行結果為___________________。([1, 4, 7])
- 表達式 list(range(5)) 的值為________________。([0, 1, 2, 3, 4])
- ______________指令既可以删除清單中的一個元素,也可以删除整個清單。(del)
- 已知a = [1, 2, 3]和b = [1, 2, 4],那麼id(a[1])==id(b[1])的執行結果為___________。(True)
- 表達式 int('123', 16) 的值為_________。(291)轉化為:16進制:1*16*16+2*16+3=256+32+3=291
- 表達式 yint('123', 8) 的值為_________。(83)轉化為:8進制:1*8*8+2*8+3=64+16+3=83
- 表達式 int('123') 的值為_____________。(123)轉化為:10進制:就是原來的
- 表達式 int('101',2) 的值為__________。(5)轉化為:2進制:1*2*2+0*0+1=4+0+1=5
- 表達式 abs(-3) 的值為___________。(3)【求絕對值】
- 切片操作list(range(6))[::2]執行結果為________________。([0, 2, 4])
- 使用切片操作在清單對象x的開始處增加一個元素3的代碼為_________。(x[0:0] = [3])
- 語句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])執行結果為_________。(False)
- 表達式 'ab' in 'acbed' 的值為________。(False)
- Python 3.x語句 print(1, 2, 3, sep=':') 的輸出結果為____________。(1:2:3)
- 表達式 sorted([111, 2, 33], key=lambda x: len(str(x))) 的值為________________。([2, 33, 111])
- 假設n為整數,那麼表達式 n&1 == n%2 的值為_____________。(True)
- 表達式 int(4**0.5) 的值為____________。(2)
- 達式 sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值為____________。([111, 33, 2])
- Python内置函數_________可以傳回清單、元組、字典、集合、字元串以及range對象中元素個數。(len())
- Python内置函數____________用來傳回序列中的最大元素。(max())
- Python内置函數____________用來傳回序列中的最小元素。(min())
- Python内置函數________________用來傳回數值型序列中所有元素之和。(sum())
- 已知清單對象x = ['11', '2', '3'],則表達式 max(x) 的值為___________。('3')
- 表達式 min(['11', '2', '3']) 的值為_________________。('11')
- 已知清單對象x = ['11', '2', '3'],則表達式max(x, key=len) 的值為___________。('11')
- 語句 x = (3,) 執行後x的值為_______________。((3,))
- 語句 x = (3) 執行後x的值為________________。(3)
- 已知x=3和y=5,執行語句 x, y = y, x 後x的值是____。(5)
- 可以使用内置函數_______________檢視包含目前作用域内所有全局變量和值的字典。(globals())
- 可以使用内置函數___________________檢視包含目前作用域内所有局部變量和值的字典。(locals())
- 字典中多個元素之間使用____________分隔開,每個元素的“鍵”與“值”之間使用________分隔開。(逗号、冒号)
- 字典對象的___________方法可以擷取指定“鍵”對應的“值”,并且可以在指定“鍵”不存在的時候傳回指定值,如果不指定則傳回None。(get())
- 字典對象的_____________方法傳回字典中的“鍵-值對”清單。(items())
- 字典對象的____________方法傳回字典的“鍵”清單。(keys())
- 字典對象的______________方法傳回字典的“值”清單。(values())
- 已知 x = {1:2},那麼執行語句 x[2] = 3之後,x的值為________________。({1: 2, 2: 3})
- 表達式 {1, 2, 3, 4} - {3, 4, 5, 6}的值為__________________。({1, 2})
- 表達式set([1, 1, 2, 3])的值為____________________。({1, 2, 3})
- 關鍵字__________用于測試一個對象是否是一個可疊代對象的元素。(in)
- 使用清單推導式得到100以内所有能被13整除的數的代碼可以寫作___________________________________。([i for i in range(100) if i%13==0])【必須要用中括号括着】
- 表達式 3<5>2 的值為_______________。(True)【兩邊都為True,最後才是True】
- 已知 x = {'a':'b', 'c':'d'},那麼表達式 'a' in x 的值為______________。(True)
- 已知 x = {'a':'b', 'c':'d'},那麼表達式 'b' in x 的值為______________。(False)
- 已知 x = {'a':'b', 'c':'d'},那麼表達式 'b' in x.values() 的值為______________。(True)
- 表達式 1<2<3 的值為_________。(True)
- 表達式 3 or 5 的值為________(3)
- 表達式 0 or 5 的值為_________(5)
- 表達式 3 and 5 的值為____________。(5)
- 表達式 3 and not 5 的值為______________。(False)
- 表達式 3 | 5 的值為__________。(7)
- 表達式 3 & 6 的值為_________。(2)
- 表達式 3 ** 2 的值為_________。(9)
- 表達式 3 * 2的值為___________。(6)
- 已知 x = [3, 5, 7],那麼表達式 x[10:]的值為____________。([])
- 已知 x = [3, 5, 7],那麼執行語句 x[len(x):] = [1, 2]之後,x的值為______________。([3, 5, 7, 1, 2])
- 已知 x = [3, 7, 5],那麼執行語句 x.sort(reverse=True)之後,x的值為_________________。([7, 5, 3])
- 已知 x = [3, 7, 5],那麼執行語句 x = x.sort(reverse=True)之後,x的值為_________。(None)
- 已知 x = [1, 11, 111],那麼執行語句 x.sort(key=lambda x: len(str(x)), reverse=True) 之後,x的值為__________________。([111, 11, 1])
- 表達式 list(zip([1,2], [3,4])) 的值為________________________。([(1, 3), (2, 4)])
- 已知 x = [1, 2, 3, 2, 3],執行語句 x.pop() 之後,x的值為_____________。([1, 2, 3, 2])
- 表達式 list(map(list,zip(*[[1, 2, 3], [4, 5, 6]]))) 的值為________________。([[1, 4], [2, 5], [3, 6]])
- 表達式 [x for x in [1,2,3,4,5] if x<3] 的值為_____________________。([1, 2])
- 表達式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值為__________________。([2, 4])
- 已知 x = [3,5,3,7],那麼表達式 [x.index(i) for i in x if i==3] 的值為______________。([0, 0])
- 已知清單 x = [1, 2],那麼表達式 list(enumerate(x)) 的值為_______________。([(0, 1), (1, 2)])
- 已知 vec = [[1,2], [3,4]],則表達式 [col for row in vec for col in row] 的值為__________________________。([1, 2, 3, 4])
- 已知 vec = [[1,2], [3,4]],則表達式 [[row[i] for row in vec] for i in range(len(vec[0]))] 的值為_________________________。([[1, 3], [2, 4]])
- 已知 x = list(range(10)),則表達式 x[-4:] 的值為__________。([6, 7, 8, 9])
- 已知 path = r'c:\test.html',那麼表達式 path[:-4]+'htm' 的值為__________。('c:\\test.htm')
- 已知 x = [3, 5, 7],那麼執行語句 x[1:] = [2]之後,x的值為________________。([3, 2])
- 已知 x = [3, 5, 7],那麼執行語句 x[:3] = [2]之後,x的值為________________。([ 2])
- 已知x為非空清單,那麼執行語句y = x[:]之後,id(x[0]) == id(y[0])的值為__________。(True)
- 已知 x = [1, 2, 3, 2, 3],執行語句 x.remove(2) 之後,x的值為____________。([1, 3, 2, 3])
- 表達式 3<<2 的值為_______________。(12)
- 表達式 65 >> 1 的值為_____________。(32)
- 表達式 chr(ord('a')^32) 的值為___________。('A')
- 表達式 chr(ord('a')-32) 的值為___________。('A')
- 表達式 abs(3+4j) 的值為____________。(5.0)
- 表達式 callable(int) 的值為___________。(True)
- 表達式 list(str([1,2,3])) == [1,2,3] 的值為______________。(False)
- 表達式 str([1, 2, 3]) 的值為__________________。('[1, 2, 3]')
- 表達式 str((1, 2, 3)) 的值為__________________。('(1, 2, 3)')
- Python中用于表示邏輯與、邏輯或、邏輯非運算的關鍵字分别是_________、___________、_________。(and、or、not)
- Python 3.x語句 for i in range(3):print(i, end=',') 的輸出結果為_____________________。(0,1,2,)
- Python 3.x語句 print(1, 2, 3, sep=',') 的輸出結果為________________。(1,2,3)
- 對于帶有else子句的for循環和while循環,當循環因循環條件不成立而自然結束時________(會?不會?)執行else中的代碼。(會)
- 在循環語句中,__________語句的作用是提前結束本層循環。(break)
- 在循環語句中,_______語句的作用是提前進入下一次循環。(continue)
- 表達式 sum(range(1, 10, 2)) 的值為____________。(25)
- 表達式 sum(range(1, 10)) 的值為_____________。(45)
- 表達式 '%c'%65 的值為_________。('A')
- 表達式 '%s'%65 的值為__________。('65')
- 表達式 '%d,%c' % (65, 65) 的值為________。('65,A')
- 表達式 'The first:{1}, the second is {0}'.format(65,97) 的值為______________________________。('The first:97, the second is 65')
- 表達式 '{0:#d},{0:#x},{0:#o}'.format(65) 的值為_____________。('65,0x41,0o101')
- 表達式 isinstance('abcdefg', str) 的值為____________。(True)
- 表達式 isinstance('abcdefg', object) 的值為_____________。(True)
- 表達式 isinstance(3, object) 的值為_____________。(True)
- 表達式 'abcabcabc'.rindex('abc') 的值為____________。(6)
- 表達式 ':'.join('abcdefg'.split('cd')) 的值為______________。('ab:efg')
- 表達式 'Hello world. I like Python.'.rfind('python') 的值為________。(-1)
- 表達式 'abcabcabc'.count('abc') 的值為_____________。(3)
- 表達式 'apple.peach,banana,pear'.find('p') 的值為______________。(1)
- 表達式 'apple.peach,banana,pear'.find('ppp') 的值為________。(-1)
- 表達式 'abcdefg'.split('d') 的值為__________________。(['abc', 'efg'])
- 表達式 ':'.join('1,2,3,4,5'.split(',')) 的值為__________________。('1:2:3:4:5')
- 表達式 ','.join('a b ccc\n\n\nddd '.split()) 的值為______________。('a,b,ccc,ddd')
- 表達式 'Hello world'.upper() 的值為___________。('HELLO WORLD')
- 表達式 'Hello world'.lower() 的值為_____________。('hello world')
- 表達式 'Hello world'.lower().upper() 的值為___________。('HELLO WORLD')
- 表達式 'Hello world'.swapcase().swapcase() 的值為______________。('Hello world')
- 表達式 r'c:\windows\notepad.exe'.endswith('.exe') 的值為_____________。(True)
- 表達式 r'c:\windows\notepad.exe'.endswith(('.jpg', '.exe')) 的值為_______。(True)
- 表達式 'C:\\Windows\\notepad.exe'.startswith('C:') 的值為_________。(True)
- 表達式 len('Hello world!'.ljust(20)) 的值為_________。(20)
- 表達式 len('abcdefg'.ljust(3)) 的值為_________。(7)
- 表達式 len([i for i in range(10)]) 的值為__________。(10)
- 表達式 len(range(1,10)) 的值為_____________。(9)
- 表達式 range(10)[-1] 的值為____________。(9)
- 表達式 range(10,20)[4] 的值為__________。(14)
- 表達式 round(3.4) 的值為___________。(3)
- 表達式 round(3.7) 的值為_________。(4)
- 表達式 'a' + 'b' 的值為_____________。('ab')
- 已知 x = '123' 和 y = '456',那麼表達式 x + y 的值為______________。('123456')
- 表達式 'a'.join('abc'.partition('a')) 的值為________________。('aaabc')
- 表達式 re.split('\.+', 'alpha.beta...gamma..delta') 的值為_______________________。(['alpha', 'beta', 'gamma', 'delta'])
- 已知 x = 'a234b123c',并且re子產品已導入,則表達式 re.split('\d+', x) 的值為_________________。(['a', 'b', 'c'])
- 表達式 ''.join('asdssfff'.split('sd')) 的值為____________。('assfff')
- 表達式 ''.join(re.split('[sd]','asdssfff')) 的值為_______________。('afff')
- 假設re子產品已導入,那麼表達式 re.findall('(\d)\\1+', '33abcd112') 的值為___________________。(['3', '1'])
- 語句 print(re.match('abc', 'defg')) 輸出結果為_____________。(None)
- 表達式 'Hello world!'[-4] 的值為________________。('r')
- 表達式 'Hello world!'[-4:] 的值為________________。('rld!')
- 表達式 'test.py'.endswith(('.py', '.pyw')) 的值為__________。(True)
- 已知 x = (3), 那麼表達式 x * 3 的值為__________。(9)
- 已知 x = (3,),那麼表達式 x * 3 的值為_____________。((3, 3, 3))
- 表達式 len('abc'.ljust(20)) 的值為______________。(20)
- 代碼 print(re.match('^[a-zA-Z]+$','abcDEFG000')) 的輸出結果為_________。(None)
- 當在字元串前加上小寫字母_____或大寫字母_____表示原始字元串,不對其中的任何字元進行轉義。(r、R)
- 在設計正規表達式時,字元_______緊随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之後時,比對模式是“非貪心的”,比對搜尋到的、盡可能短的字元串。(?)
- 假設正規表達式子產品re已導入,那麼表達式 re.sub('\d+', '1', 'a12345bbbb67c890d0e') 的值為_____________________。('a1bbbb1c1d1e')
- 假設清單對象x = [1, 1, 1],那麼表達式id(x[0]) == id(x[2])的值為_____________。(True)
- 已知清單 x = list(range(10)),那麼執行語句 del x[::2]之後,x的值為_________。([1, 3, 5, 7, 9])
- 已知清單 x = [1, 2, 3, 4],那麼執行語句 del x[1] 之後x的值為____________。([1, 3, 4])
- 表達式 [1] * 2 的值為_________________。([1, 1])
- 表達式 [1, 2] * 2 的值為______________。([1, 2, 1, 2])
- 已知清單 x = [1, 2, 3],那麼執行語句 x.insert(1, 4) 隻有,x的值為___________。([1, 4, 2, 3])
- 已知清單 x = [1, 2, 3],那麼執行語句 x.insert(0, 4) 隻有,x的值為___________。([4, 1, 2, 3])
- 已知清單 x = [1, 2, 3],那麼執行語句 x.pop(0) 之後,x的值為_________。([2, 3])
- 已知 x = [[1]] * 3,那麼執行語句 x[0][0] = 5之後,變量x的值為________________。([[5], [5], [5]])
- 表達式 list(map(lambda x: x+5, [1, 2, 3, 4, 5])) 的值為______________________。([6, 7, 8, 9, 10])
- 表達式 {1, 2, 3, 4, 5} ^ {4, 5, 6, 7} 的值為_________________________。({1, 2, 3, 6, 7})
- 表達式 5 if 5>6 else (6 if 3>2 else 5) 的值為_________。(6)
- 已知 x = [1, 2, 3],那麼執行語句 x[len(x)-1:] = [4, 5, 6]之後,變量x的值為_________________________________。([1, 2, 4, 5, 6])
- 表達式 len(range(1, 10)) 的值為___________。(9)
- 表達式 len('中國'.encode('utf-8')) 的值為___________。(6)
- 表達式 len('中國'.encode('gbk')) 的值為____________。(4)
- 表達式 chr(ord('A')+2) 的值為__________。('C')
- 已知x是一個清單對象,那麼執行語句 y = x[:] 之後表達式 id(x) == id(y) 的值為___________。(False)
- 表達式 sorted([13, 1, 237, 89, 100], key=lambda x: len(str(x))) 的值為___________________________________。([1, 13, 89, 237, 100])
- Python中定義函數的關鍵字是_________________。(def)
- 在函數内部可以通過關鍵字________________來定義全局變量。(global)
- 如果函數中沒有return語句或者return語句不帶任何傳回值,那麼該函數的傳回值為_________________。(None)
- 表達式 sum(range(10)) 的值為________________。(45)
- 表達式 sum(range(1, 10, 2)) 的值為____________。(25)
- 表達式 'abcab'.replace('a','yy') 的值為___________。('yybcyyb')
- 已知 table = ''.maketrans('abcw', 'xyzc'),那麼表達式 'Hellow world'.translate(table) 的值為______________________。('Helloc corld')
- 表達式 'hello world, hellow every one'.replace('hello', 'hi') 的值為________________________。('hi world, hiw every one')
- 已知字元串 x = 'hello world',那麼執行語句 x.replace('hello', 'hi') 之後,x的值為____________。('hello world')
- 正規表達式元字元________用來表示該符号前面的字元或子模式1次或多次出現。(+)
- 已知 x = 'a b c d',那麼表達式 ','.join(x.split()) 的值為___________。('a,b,c,d')
- 正規表達式元字元________用來表示該符号前面的字元或子模式0次或多次出現。(*)
- 表達式 'abcab'.strip('ab') 的值為__________。('c')
- 表達式 [str(i) for i in range(3)] 的值為____________。(['0', '1', '2'])
- 表達式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值為___________。(True)
- 表達式 list(filter(None, [0,1,2,3,0,0])) 的值為___________________。([1, 2, 3])
- 表達式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值為_________。([3])
- 表達式 list(range(50, 60, 3)) 的值為_______________________。([50, 53, 56, 59])
- 表達式 list(filter(lambda x: x%2==0, range(10))) 的值為__________________________。([0, 2, 4, 6, 8])
- 表達式 list(filter(lambda x: len(x)>3, ['a', 'b', 'abcd'])) 的值為___________。(['abcd'])
- Python使用_________________關鍵字來定義類。(class)
- 表達式 isinstance('abc', str) 的值為________________。(True)
- 表達式 isinstance('abc', int) 的值為_______________。(False)
- 表達式 isinstance(4j, (int, float, complex)) 的值為_____________。(True)
- 表達式 isinstance('4', (int, float, complex)) 的值為_____________。(False)
- 表達式 type(3) in (int, float, complex) 的值為____________。(True)
- 表達式 type(3.0) in (int, float, complex) 的值為____________。(True)
- 表達式 type(3+4j) in (int, float, complex) 的值為____________。(True)
- 表達式 type('3') in (int, float, complex) 的值為____________。(False)
- 表達式 type(3) == int 的值為__________。(True)
- 代碼 print(1,2,3,sep=':') 的執行結果為__________________。(1:2:3)
- 代碼 for i in range(3):print(i, end=',') 的執行結果為_________________。(0,1,2,)
- 表達式 eval('''__import__('math').sqrt(9)''') 的值為______________。(3.0)
- 表達式 eval('''__import__('math').sqrt(3**2+4**2)''') 的值為_________。(5.0)
- 表達式 eval('3+5') 的值為_________________。(8)
- 表達式 eval('[1, 2, 3]') 的值為__________________。([1, 2, 3])
- 假設math标準庫已導入,那麼表達式 eval('math.sqrt(4)') 的值為_________。(2.0)
- 已知x為非空清單,那麼表達式 random.choice(x) in x 的值為___________。(True)
- 表達式 'abc10'.isalnum() 的值為______________。(True)
- 表達式 'abc10'.isalpha() 的值為________________。(False)
- 表達式 'abc10'.isdigit() 的值為__________________。(False)
- 表達式 [1,2,3].count(4) 的值為_______________。(0)
- Python标準庫random中的___________方法作用是從序列中随機選擇1個元素。(choice())
- 表達式 'C:\\windows\\notepad.exe'.endswith('.exe') 的值為________。(True)
- Python标準庫random中的sample(seq, k)方法作用是從序列中選擇________(重複?不重複?)的k個元素。(不重複)
- random子產品中_____________方法的作用是将清單中的元素随機亂序。(shuffle())
- Python關鍵字elif表示__________和___________兩個單詞的縮寫。(else、if)
- 執行代碼 x, y, z = sorted([1, 3, 2]) 之後,變量y的值為______。(2)
- 已知 x = {1:2, 2:3},那麼表達式 x.get(3, 4) 的值為____。(4)
- 已知 x = {1:2, 2:3},那麼表達式 x.get(2, 4) 的值為______。(3)
- 表達式 {1, 2, 3} | {3, 4, 5} 的值為_____________________。({1, 2, 3, 4, 5})
- 表達式 {1, 2, 3} | {2, 3, 4} 的值為______________________。({1, 2, 3, 4})
- 表達式 {1, 2, 3} & {3, 4, 5} 的值為______________。({3})
- 表達式 {1, 2, 3} & {2, 3, 4} 的值為___________。({2, 3})
- 表達式 {1, 2, 3} - {3, 4, 5} 的值為_________。({1, 2})
- 表達式 {1, 2, 3} < {3, 4, 5} 的值為_________。(False)
- 表達式 {1, 2, 3} < {1, 2, 4} 的值為___________。(False)
- 表達式 '%s'%[1,2,3] 的值為_____________。('[1, 2, 3]')
- 在Python定義類時,與運算符“**”對應的特殊方法名為 _____________。(__pow__())
- 在Python中定義類時,與運算符“//”對應的特殊方法名為_______________。(__floordiv__())
- 對檔案進行寫入操作之後,_______________方法用來在不關閉檔案對象的情況下将緩沖區内容寫入檔案。(flush())
- Python内置函數_____________用來打開或建立檔案并傳回檔案對象。(open())
- 使用上下文管理關鍵字______________可以自動管理檔案對象,不論何種原因結束該關鍵字中的語句塊,都能保證檔案被正确關閉。(with)
- Python标準庫os中用來列出指定檔案夾中的檔案和子檔案夾清單的方式是____________。(listdir())
- Python标準庫os.path中用來判斷指定檔案是否存在的方法是______________。(exists())
- Python标準庫os.path中用來判斷指定路徑是否為檔案的方法是_______________。(isfile())
- Python标準庫os.path中用來判斷指定路徑是否為檔案夾的方法是______________。(isdir())
- Python标準庫os.path中用來分割指定路徑中的檔案擴充名的方法是__________。(splitext())
- Python内建異常類的基類是________________。(BaseException)
- Python擴充庫_____________支援Excel 2007或更高版本檔案的讀寫操作。(openpyxl)
- Python标準庫____________中提供了計算MD5摘要的方法md5()。(hashlib)
- 表達式 len('SDIBT') 的值為__________。(5)
- 表達式 'Hello world!'.count('l') 的值為___________。(3)
- 表達式 (1, 2, 3)+(4, 5) 的值為__________________。((1, 2, 3, 4, 5))
- 表達式 dict(zip([1, 2], [3, 4])) 的值為_________________________________。({1: 3, 2: 4})
- 已知 x = 'abcdefg',則表達式 x[3:] + x[:3] 的值為___________________。('defgabc')
- 一直 g = lambda x, y=3, z=5: x*y*z,則語句 print(g(1)) 的輸出結果為_______。(15)
- 表達式 list(map(lambda x: len(x), ['a', 'bb', 'ccc'])) 的值為__________。([1, 2, 3])
- 語句 x, y, z = [1, 2, 3] 執行後,變量y的值為__________。(2)
- Python标準庫__________對Socket進行了二次封裝,支援Socket接口的通路,大幅度簡化了網絡程式的開發。(socket)
- Python擴充庫______________中封裝了Windows底層幾乎所有API函數。(pywin32)
- 線程對象的___________方法用來阻塞目前線程,指定線程運作結束或逾時後繼續運作目前線程。(join())
- Python用來通路和操作内置資料庫SQLite的标準庫是_____________。(sqlite3)
- 用于删除資料庫表test中所有name字段值為’10001’的記錄的SQL語句為______________________________。(delete from test where name=’10001’)
- Python擴充庫________________完美封裝了圖形庫OpenGL的功能。(pyopengl)
- Python擴充庫______________和______________提供了圖像處理功能。(PIL、pillow)
- 已知 x = [[1,3,3], [2,3,1]],那麼表達式 sorted(x, key=lambda item:item[0]+item[2]) 的值為______________________________________。([[2, 3, 1], [1, 3, 3]])
- 已知 x = [[1,3,3], [2,3,1]],那麼表達式 sorted(x, key=lambda item:(item[1],item[2])) 的值為____________________________________。([[2, 3, 1], [1, 3, 3]])
- 已知 x = [[1,3,3], [2,3,1]],那麼表達式 sorted(x, key=lambda item:(item[1], -item[2])) 的值為____________________________________。([[1, 3, 3], [2, 3, 1]])
- 已知 x = {1, 2, 3},那麼執行語句 x.add(3) 之後,x的值為__________。({1, 2, 3})
- 已知 x = {1:1},那麼執行語句 x[2] = 2之後,len(x)的值為____________。(2)
- 已知 x = {1:1, 2:2},那麼執行語句 x[2] = 4之後,len(x)的值為____________。(2)
- 假設已從标準庫functools導入reduce()函數,那麼表達式 reduce(lambda x, y: x-y, [1, 2, 3]) 的值為____。(-4)
- 假設已從标準庫functools導入reduce()函數,那麼表達式 reduce(lambda x, y: x+y, [1, 2, 3]) 的值為____。(6)
- 已知有函數定義 def demo(*p):return sum(p),那麼表達式 demo(1, 2, 3) 的值為______、表達式 demo(1, 2, 3, 4) 的值為_________。(6、10)
- 已知清單 x = [1, 2],那麼連續執行指令 y = x和 y.append(3) 之後,x的值為________。([1, 2, 3])
- 已知清單 x = [1, 2],那麼連續執行指令 y = x[:] 和 y.append(3) 之後,x的值為________。([1, 2])
- 已知清單 x = [1, 2],執行語句 y = x[:] 後,表達式 id(x) == id(y) 的值為_______。(False)
- 已知清單 x = [1, 2],執行語句 y = x 後,表達式 id(x) == id(y) 的值為_______。(True)
- 已知清單 x = [1, 2],執行語句 y = x 後,表達式 x is y 的值為_______。(True)
- 已知清單 x = [1, 2],執行語句 y = x[:] 後,表達式 x is not y 的值為_______。(True)
- 表達式 sorted(random.sample(range(5), 5)) 的值為_________________________。([0, 1, 2, 3, 4])
- 表達式 [i for i in range(10) if i>8] 的值為________________。([9])
- 已知有清單 x = [[1, 2, 3], [4, 5, 6]],那麼表達式 [[row[i] for row in x] for i in range(len(x[0]))] 的值為___________________________。([[1, 4], [2, 5], [3, 6]])
- 執行語句 x,y,z = map(str, range(3)) 之後,變量y的值為___________。('1')
- 已知清單 x = [1, 2],那麼執行語句 x.extend([3]) 之後, x的值為____________。([1, 2, 3])
- 已知清單 x = [1, 2],那麼執行語句 x.append([3]) 之後,x的值為_____________。([1, 2, [3]])
- 表達式 'aaasdf'.lstrip('as') 的值為________________。('df')
- 表達式 'aaasdf'.lstrip('af') 的值為________________。('sdf')
- 表達式 'aaasdf'.strip('af') 的值為______________。('sd')
- 表達式 'aaasdf'.rstrip('af') 的值為_______________。('aaasd')
- 已知 f = lambda x: x+5,那麼表達式 f(3) 的值為________。(8)
- 表達式 print(0b10101) 的值為____________。(21)
- 表達式 '\x41' == 'A' 的值為_____________。(True)
- 已知 x = [1, 2, 3, 4, 5],那麼執行語句 del x[:3] 之後,x的值為__________。([4, 5])
- 表達式 sorted(['abc', 'acd', 'ade'], key=lambda x:(x[0],x[2])) 的值為_____________。(['abc', 'acd', 'ade'])
- 已知 x = range(1,4) 和 y = range(4,7),那麼表達式 sum([i*j for i,j in zip(x,y)]) 的值為__________。(32)
- 表達式 [5 for i in range(3)] 的值為_______________。([5, 5, 5])
- 表達式 {1, 2, 3} == {1, 3, 2} 的值為___________。(True)
- 表達式 [1, 2, 3] == [1, 3, 2] 的值為____________。(False)
- 已知 x = [1, 2, 1],那麼表達式 id(x[0]) == id(x[2]) 的值為_______________。(True)
- 表達式 3 not in [1, 2, 3]的值為__________。(False)
- 已知 x = [1, 2],那麼執行語句 x[0:0] = [3, 3]之後,x的值為___________。([3, 3, 1, 2])
- 已知 x = [1, 2],那麼執行語句 x[0:1] = [3, 3]之後,x的值為___________。([3, 3, 2])
- 已知 x = [1, 2, 3, 4, 5],那麼執行語句 del x[1:3] 之後,x的值為____________。([1, 4, 5])
- 已知 x = [[1, 2, 3,], [4, 5, 6]],那麼表達式 sum([i*j for i,j in zip(*x)]) 的值為______。(32)
- 已知清單 x = [1, 2, 3] 和 y = [4, 5, 6],那麼表達式 [(i,j) for i, j in zip(x,y) if i==3] 的值為____________。([(3, 6)])
- 已知清單 x = [1.0, 2.0, 3.0],那麼表達式 sum(x)/len(x) 的值為___________。(2.0)
- 表達式 'abc' in ('abcdefg') 的值為______________。(True)
- 表達式 'abc' in ['abcdefg'] 的值為______________。(False)
- 已知 x = {1:2, 2:3, 3:4},那麼表達式 sum(x) 的值為___________。(6)
- 已知 x = {1:2, 2:3, 3:4},那麼表達式 sum(x.values()) 的值為_________。(9)
- 已知 x = [3, 2, 3, 3, 4],那麼表達式 [index for index, value in enumerate(x) if value==3] 的值為____________。([0, 2, 3])
- 表達式 1234%1000//100 的值為___________。(2)
- 正規表達式子產品re的__________方法用來編譯正規表達式對象。(compile())
- 正規表達式子產品re的______________方法用來在字元串開始處進行指定模式的比對。(match())
- 正規表達式子產品re的______________方法用來在整個字元串中進行指定模式的比對。(search())
- 表達式 re.search(r'\w*?(?P<f>\b\w+\b)\s+(?P=f)\w*?', 'Beautiful is is better than ugly.').group(0) 的值為___________。('is is')
- 已知 g = lambda x, y=3, z=5: x+y+z,那麼表達式 g(2) 的值為________。(10)
- 假設有Python程式檔案abc.py,其中隻有一條語句print(__name__),那麼直接運作該程式時得到的結果為_____________。(__main__)
- 表達式 3 in {1, 2, 3} 的值為_________。(True)
- 表達式 'ac' in 'abce' 的值為_____________。(False)
- 表達式 not 3 的值為________________。(False)
- 表達式 3 // 5 的值為_______________。(0)
- 表達式 [1, 2] + [3] 的值為__________________。([1, 2, 3])
- 表達式 (1,) + (2,) 的值為_____________。((1, 2))
- 表達式 (1) + (2) 的值為____________。(3)
- 已知 x, y = map(int, ['1', '2']),那麼表達式 x + y 的值為_______。(3)
- 已知清單 x = list(range(5)),那麼執行語句 x.remove(3) 之後,表達式 x.index(4) 的值為________。(3)
- 已知清單 x = [1, 3, 2],那麼執行語句 x.reverse() 之後,x的值為____________。([2, 3, 1])
- 已知清單 x = [1, 3, 2],那麼執行語句 x = x.reverse() 之後,x的值為____________。(None)
- 已知x為非空清單,那麼表達式 x.reverse() == list(reversed(x)) 的值為__________。(False)
- 已知x為非空清單,那麼表達式 x.sort() == sorted(x) 的值為__________。(False)
- 已知清單 x = [1, 3, 2],那麼執行語句 y = list(reversed(x)) 之後,x的值為__________。([1, 3, 2])
- 已知清單 x = [1, 3, 2],那麼執行語句 y = list(reversed(x)) 之後,y的值為__________。([2, 3, 1])
- 表達式 'Beautiful is better than ugly.'.startswith('Be', 5) 的值為_________。(False)
- 已知清單x中包含超過5個以上的元素,那麼表達式 x == x[:5]+x[5:] 的值為________。(True)
- 已知字典 x = {i:str(i+3) for i in range(3)},那麼表達式 sum(x) 的值為______。(3)
- 已知字典 x = {i:str(i+3) for i in range(3)},那麼表達式 ''.join(x.values()) 的值為____________。('345')
- 已知字典 x = {i:str(i+3) for i in range(3)},那麼表達式 sum(item[0] for item in x.items()) 的值為___________。(3)
- 已知字典 x = {i:str(i+3) for i in range(3)},那麼表達式 ''.join([item[1] for item in x.items()]) 的值為_____________。('345')
- 已知清單 x = [1, 3, 2],那麼表達式 [value for index, value in enumerate(x) if index==2] 的值為_______________。([2])
- 已知清單 x = [1, 3, 2],那麼執行語句 a, b, c = sorted(x) 之後,b的值為____。(2)
- 已知清單 x = [1, 3, 2],那麼執行語句 a, b, c = map(str,sorted(x)) 之後,c的值為______。('3')
- 表達式 set([1,2,3]) == {1, 2, 3} 的值為____________。(True)
- 表達式 set([1,2, 2,3]) == {1, 2, 3} 的值為____________。(True)
- 表達式 '%c'%65 == str(65) 的值為___________。(False)
- 表達式 '%s'%65 == str(65) 的值為_____________。(True)
- 表達式 chr(ord('b')^32) 的值為_________。('B')
- 表達式 'abc' in 'abdcefg' 的值為_____________。(False)
- 已知函數定義 def func(*p):return sum(p),那麼表達式 func(1,2,3) 的值為______。(6)
- 已知函數定義 def func(*p):return sum(p),那麼表達式 func(1,2,3, 4) 的值為______。(10)
- 已知函數定義 def func(**p):return sum(p.values()),那麼表達式 func(x=1, y=2, z=3) 的值為________。(6)
- 已知函數定義 def func(**p):return ''.join(sorted(p)),那麼表達式 func(x=1, y=2, z=3)的值為__________。('xyz')
- 已知x為整數變量,那麼表達式 int(hex(x), 16) == x 的值為_____________。(True)
- 已知 f = lambda x: 5,那麼表達式 f(3)的值為_____________。(5)
- 已知 x, y = 3, 5,那麼執行x, y = y, x 之後,x的值為__________。(5)
- 已知 x = 'abcd' 和 y = 'abcde',那麼表達式 [i==j for i,j in zip(x,y)] 的值為________________。([True, True, True, True])
- 表達式16**0.5的值為____________________。(4.0)
- 表達式type({3})的值為____________________。(set)
- 表達式isinstance('Hello world', str)的值為____________________。(True)
- 已知x = list(range(20)),那麼表達式x[-1]的值為____________________。(19)
- 已知x = 3+4j和y = 5+6j,那麼表達式x+y的值為____________________。(8+10j)
- 已知x = [3],那麼執行x += [5]之後x的值為____________________。([3, 5])
- 已知x = [3, 3, 4],那麼表達式id(x[0])==id(x[1])的值為__________________。(True)
- 表達式int('11', 2)的值為______________________。(3)
- 表達式int('11', 8)的值為_______________________。(9)
- 表達式int(bin(54321), 2)的值為_______________________。(54321)
- 表達式chr(ord('A')+1)的值為____________________。('B')
- 表達式int(str(34)) == 34的值為___________________。(True)
- 表達式list(str([3, 4])) == [3, 4]的值為_________________。(False)
- 表達式{1, 2, 3, 4, 5, 6} ^ {5, 6, 7, 8}的值為__________________。({1, 2, 3, 4, 7, 8})
- 表達式15 // 4的值為__________________。(3)
- 表達式sorted({'a':3, 'b':9, 'c':78})的值為_________________。(['a', 'b', 'c'])
- 表達式sorted({'a':3, 'b':9, 'c':78}.values())的值為_____________。([3, 9, 78])
- 已知x = [3, 2, 4, 1],那麼執行語句x = x.sort()之後,x的值為____________。(None)
- 表達式list(filter(lambda x: x>5, range(10)))的值為_________________。([6, 7, 8, 9])
- 已知x = list(range(20)),那麼語句print(x[100:200])的輸出結果為_______________。([])
- 已知x = list(range(20)),那麼執行語句x[:18] = []後清單x的值為______________。([18, 19])
- 已知x = [1, 2, 3],那麼連續執行y = x[:]和y.append(4)這兩條語句之後,x的值為____________________。([1, 2, 3])
- 已知x = [1, 2, 3],那麼連續執行y = x和y.append(4)這兩條語句之後,x的值為____________________。([1, 2, 3, 4])
- 已知x = [1, 2, 3],那麼連續執行y = [1, 2, 3]和y.append(4)這兩條語句之後,x的值為____________________。([1, 2, 3])
- 已知x = [[]] * 3,那麼執行語句x[0].append(1)之後,x的值為____________________。([[1], [1], [1]])
- 已知x = [[] for i in range(3)],那麼執行語句x[0].append(1)之後,x的值為_________________。([[1], [], []])
- 已知x = ([1], [2]),那麼執行語句x[0].append(3)後x的值為________________。(([1, 3], [2]))
- 已知x = {1:1, 2:2},那麼執行語句x.update({2:3, 3:3})之後,表達式sorted(x.items())的值為____________________。([(1, 1), (2, 3), (3, 3)])
- 已知x = {1:1, 2:2},那麼執行語句x[3] = 3之後,表達式sorted(x.items())的值為____________________。([(1, 1), (2, 2), (3, 3)])
- 表達式type({}) == dict的值為_________________。(True)
- 表達式type({}) == set的值為_______________。(False)
- 已知x = [1, 2, 3],那麼表達式not (set(x*100)-set(x))的值為________________。(True)
- 已知x = [1, 2, 3],那麼表達式not (set(x*100)&set(x))的值為________________。(False)
- 表達式{'x': 1, **{'y': 2}}的值為___________________。({'x': 1, 'y': 2})
- 表達式{*range(4), 4, *(5, 6, 7)}的值為__________________。({0, 1, 2, 3, 4, 5, 6, 7})
- 在Python中,不論類的名字是什麼,構造方法的名字都是________________。(__init__)
- 如果在設計一個類時實作了__contains__ ()方法,那麼該類的對象會自動支援_____________運算符。(in)
- 已知函數定義def demo(x, y, op):return eval(str(x)+op+str(y)),那麼表達式demo(3, 5, '+')的值為______________________。(8)
- 已知函數定義def demo(x, y, op):return eval(str(x)+op+str(y)),那麼表達式demo(3, 5, '*')的值為______________________。(15)
- 已知函數定義def demo(x, y, op):return eval(str(x)+op+str(y)),那麼表達式demo(3, 5, '-')的值為______________________。(-2)
- 字元串編碼格式UTF8使用____________________個位元組表示一個漢字。(3)
- 字元串編碼格式GBK使用__________________個位元組表示一個漢字。(2)
- 已知字元串編碼格式utf8使用3個位元組表示一個漢字、1個位元組表示英語字母,那麼表達式len('abc你好')的值為_______________。(5)
- 已知字元串編碼格式utf8使用3個位元組表示一個漢字、1個位元組表示英語字母,那麼表達式len('abc你好'.encode())的值為_______________。(9)
- 已知字元串編碼格式gbk使用2個位元組表示一個漢字、1個位元組表示英語字母,那麼表達式len('abc你好'.encode('gbk'))的值為_______________。(7)
- 已知ord('A')的值為65并且hex(65)的值為'0x41',那麼表達式'\x41b'的值為________________。('Ab')
- 已知formatter = 'good {0}'.format,那麼表達式list(map(formatter, ['morning']))的值為__________________。(['good morning'])
- 已知x = 'hello world.',那麼表達式x.find('x')和x.rfind('x')的值都為_____________。(-1)
- 表達式':'.join('hello world.'.split())的值為___________________。('hello:world.')
- 表達式':'.join('a b c d'.split(maxsplit=2))的值為_________________。('a:b:c d')
- 已知x = 'hello world',那麼表達式x.replace('l', 'g')的值為_______________。('heggo worgd')
- 假設已成功導入Python标準庫string,那麼表達式len(string.digits)的值為_______________。(10)
- 表達式'aaaassddf'.strip('af')的值為__________________。('ssdd')
- 表達式len('aaaassddf'.strip('afds'))的值為________________。(0)
- 表達式len('hello world'[100:])的值為__________________。(0)
- 表達式chr(ord('a')^32^32)的值為_________________。('a')
- 表達式chr(ord('a')^32)的值為_________________。('A')
- 已知x = 'aa b ccc dddd',那麼表達式''.join([v for i,v in enumerate(x[:-1]) if v==x[i+1]])的值為_________________。('accddd')
- 已知目前檔案夾中有純英文文本檔案readme.txt,請填空完成功能把readme.txt檔案中的所有内容複制到dst.txt中,with open('readme.txt') as src, open('dst.txt', ____________) as dst:dst.write(src.read())。('w')
- 假設正規表達式子產品re已正确導入,那麼表達式''.join(re.findall('\d+', 'abcd1234'))的值為_____________________。('1234')
- 假設正規表達式子產品re已正确導入,那麼表達式re.findall('\d+?', 'abcd1234')的值為_____________________。(['1', '2', '3', '4'])
- 假設正規表達式子產品re已正确導入,那麼表達式re.sub('(.\s)\\1+', '\\1','a a a a a bb')的值為________________________。('a bb')
- Python标準庫_____________________提供了對SQLite資料庫的通路接口。(sqlite3)
- 已知f = lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那麼表達式f(6)的值為____________________。(1)
- 已知f = lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那麼表達式f(7)的值為____________________。(0)
- 已知 x = [1,2,3,4,5],那麼執行語句 x[::2] = range(3) 之後,x的值為_______________。([0, 2, 1, 4, 2])
- 已知 x = [1,2,3,4,5],那麼執行語句 x[::2] = map(lambda y:y!=5,range(3)) 之後,x的值為________________。([True, 2, True, 4, True])
- 已知 x = [1,2,3,4,5],那麼執行語句 x[1::2] = sorted(x[1::2], reverse=True) 之後,x的值為_________________。([1, 4, 3, 2, 5])
- 表達式 True*3 的值為__________。(3)
- 表達式 False+1 的值為__________。(1)
- 判斷題
- Python是一種跨平台、開源、免費的進階動态程式設計語言。(對)
- Python 3.x完全相容Python 2.x。(錯)
- Python 3.x和Python 2.x唯一的差別就是:print在Python 2.x中是輸出語句,而在Python 3.x中是輸出函數。(錯)
- 在Windows平台上編寫的Python程式無法在Unix平台運作。(錯)
- 不可以在同一台計算機上安裝多個Python版本。(錯)
- 已知 x = 3,那麼指派語句 x = 'abcedfg' 是無法正常執行的。(錯)
- 繼承自threading.Thread類的派生類中不能有普通的成員方法。(錯)
- 擴充庫os中的方法remove()可以删除帶有隻讀屬性的檔案。(錯)
- 使用内置函數open()且以”w”模式打開的檔案,檔案指針預設指向檔案尾。(錯)
- 使用内置函數open()打開檔案時,隻要檔案路徑正确就總是可以正确打開的。(錯)
- Python變量使用前必須先聲明,并且一旦聲明就不能再目前作用域内改變其類型。(錯)
- Python采用的是基于值得自動記憶體管理方式。(對)
- 在任何時刻相同的值在記憶體中都隻保留一份(錯)
- Python不允許使用關鍵字作為變量名,允許使用内置函數名作為變量名,但這會改變函數名的含義。(對)
- 在Python中可以使用if作為變量名。(錯)
- 在Python 3.x中可以使用中文作為變量名。(對)
- Python變量名必須以字母或下劃線開頭,并且區分字母大小寫。(對)
- 加法運算符可以用來連接配接字元串并生成新字元串。(對)
- 9999**9999這樣的指令在Python中無法運作。(錯)
- 3+4j不是合法的Python表達式。(錯)
- 0o12f是合法的八進制數字。(錯)
- Python 2.x和Python 3.x中input()函數的傳回值都是字元串。(錯)
- pip指令也支援擴充名為.whl的檔案直接安裝Python擴充庫。(對)
- 隻有Python擴充庫才需要導入以後才能使用其中的對象,Python标準庫不需要導入即可使用其中的所有對象和方法。(錯)
- 在Python中0xad是合法的十六進制數字表示形式。(對)
- 3+4j 是合法Python數字類型。(對)
- 在Python中0oa1是合法的八進制數字表示形式。(錯)
- Python使用縮進來展現代碼之間的邏輯關系。(對)
- Python代碼的注釋隻有一種方式,那就是使用#符号。(錯)
- 調用函數時,在實參前面加一個型号*表示序列解包。(對)
- 放在一對三引号之間的任何内容将被認為是注釋。(錯)
- Python支援使用字典的“鍵”作為下标來通路字典中的值。(對)
- 清單可以作為字典的“鍵”。(錯)
- 元組可以作為字典的“鍵”。(對)
- 字典的“鍵”必須是不可變的。(對)
- 盡管可以使用import語句一次導入任意多個标準庫或擴充庫,但是仍建議每次隻導入一個标準庫或擴充庫。(對)
- 為了讓代碼更加緊湊,編寫Python程式時應盡量避免加入空格和空行。(錯)
- 在Python 3.5中運算符+不僅可以實作數值的相加、字元串連接配接,還可以實作清單、元組的合并和集合的并集運算。(錯)
- 已知x為非空清單,那麼表達式 sorted(x, reverse=True) == list(reversed(x)) 的值一定是True。(錯)
- 已知x為非空清單,那麼x.sort(reverse=True)和x.reverse()的作用是等價的。(錯)
- 生成器推導式比清單推導式具有更高的效率,推薦使用。(對)
- Python集合中的元素不允許重複。(對)
- Python集合可以包含相同的元素。(錯)
- Python字典中的“鍵”不允許重複。(對)
- Python字典中的“值”不允許重複。(錯)
- Python集合中的元素可以是元組。(對)
- Python集合中的元素可以是清單。(錯)
- Python字典中的“鍵”可以是清單。(錯)
- Python字典中的“鍵”可以是元組。(對)
- Python清單中所有元素必須為相同類型的資料。(錯)
- Python清單、元組、字元串都屬于有序序列。(對)
- 在Python 3.x中語句 print(*[1,2,3]) 不能正确執行。(錯)
- 已知A和B是兩個集合,并且表達式A<B的值為False,那麼表達式A>B的值一定為True。(錯)
- 清單對象的append()方法屬于原地操作,用于在清單尾部追加一個元素。(對)
- 對于清單而言,在尾部追加元素比在中間位置插入元素速度更快一些,尤其是對于包含大量元素的清單。(對)
- 假設有非空清單x,那麼x.append(3)、x = x+[3]與x.insert(0,3)在執行時間上基本沒有太大差別。(錯)
- 使用Python清單的方法insert()為清單插入元素時會改變清單中插入位置之後元素的索引。(對)
- 假設x為清單對象,那麼x.pop()和x.pop(-1)的作用是一樣的。(對)
- 使用del指令或者清單對象的remove()方法删除清單中元素時會影響清單中部分元素的索引。(對)
- 帶有else子句的循環如果因為執行了break語句而退出的話,則會執行else子句中的代碼。(錯)
- 對于帶有else子句的循環語句,如果是因為循環條件表達式不成立而自然結束循環,則執行else子句中的代碼。(對)
- 已知清單 x = [1, 2, 3],那麼執行語句 x = 3 之後,變量x的位址不變。(錯)
- 在UTF-8編碼中一個漢字需要占用3個位元組。(對)
- 在GBK和CP936編碼中一個漢字需要2個位元組。(對)
- 如果僅僅是用于控制循環次數,那麼使用for i in range(20)和for i in range(20, 40)的作用是等價的。(對)
- 使用清單對象的remove()方法可以删除清單中首次出現的指定元素,如果列中不存在要删除的指定元素則抛出異常。(對)
- 元組是不可變的,不支援清單對象的inset()、remove()等方法,也不支援del指令删除其中的元素,但可以使用del指令删除整個元組對象。(對)
- Python字典和集合屬于無序序列。(對)
- 無法删除集合中指定位置的元素,隻能删除特定值的元素。(對)
- 元組的通路速度比清單要快一些,如果定義了一系列常量值,并且主要用途僅僅是對其進行周遊二不需要進行任何修改,建議使用元組而不使用清單。(對)
- 當以指定“鍵”為下标給字典對象指派時,若該“鍵”存在則表示修改該“鍵”對應的“值”,若不存在則表示為字典對象添加一個新的“鍵-值對”。(對)
- 假設x是含有5個元素的清單,那麼切片操作x[10:]是無法執行的,會抛出異常。(錯)
- 隻能對清單進行切片操作,不能對元組和字元串進行切片操作。(錯)
- 隻能通過切片通路清單中的元素,不能使用切片修改清單中的元素。(錯)
- 隻能通過切片通路元組中的元素,不能使用切片修改元組中的元素。(對)
- 字元串屬于Python有序序列,和清單、元組一樣都支援雙向索引。(對)
- Python字典和集合支援雙向索引。(錯)
- 使用print()函數無法将資訊寫入檔案。(錯)
- Python集合不支援使用下标通路其中的元素。(對)
- 相同内容的字元串使用不同的編碼格式進行編碼得到的結果并不完全相同。(對)
- 删除清單中重複元素最簡單的方法是将其轉換為集合後再重新轉換為清單。(對)
- 已知清單x中包含超過5個以上的元素,那麼語句 x = x[:5]+x[5:] 的作用是将清單x中的元素循環左移5位。(錯)
- 對于生成器對象x = (3 for i in range(5)),連續兩次執行list(x)的結果是一樣的。(錯)
- 在循環中continue語句的作用是跳出目前循環。(錯)
- 在編寫多層循環時,為了提高運作效率,應盡量減少内循環中不必要的計算。(對)
- 在Python中,任意長的字元串都遵守駐留機制。(錯)
- Python運算符%不僅可以用來求餘數,還可以用來格式化字元串。(對)
- Python字元串方法replace()對字元串進行原地修改。(錯)
- 如果需要連接配接大量字元串成為一個字元串,那麼使用字元串對象的join()方法比運算符+具有更高的效率。(對)
- 對于大量清單的連接配接,extend()方法比運算符+具有更高的效率。(對)
- 表達式 {1, 3, 2} > {1, 2, 3} 的值為True。(錯)
- 清單對象的extend()方法屬于原地操作,調用前後清單對象的位址不變。(對)
- 正規表達式子產品re的match()方法是從字元串的開始比對特定模式,而search()方法是在整個字元串中尋找模式,這兩個方法如果比對成功則傳回match對象,比對失敗則傳回空值None。(對)
- 函數是代碼複用的一種方式。(對)
- 定義函數時,即使該函數不需要接收任何參數,也必須保留一對空的圓括号來表示這是一個函數。(對)
- 編寫函數時,一般建議先對參數進行合法性檢查,然後再編寫正常的功能代碼。(對)
- 一個函數如果帶有預設值參數,那麼必須所有參數都設定預設值。(錯)
- 定義Python函數時必須指定函數傳回值類型。(錯)
- 定義Python函數時,如果函數中沒有return語句,則預設傳回空值None。(對)
- 如果在函數中有語句 return 3,那麼該函數一定會傳回整數3。(錯)
- 函數中必須包含return語句。(錯)
- 函數中的return語句一定能夠得到執行。(錯)
- 不同作用域中的同名變量之間互相不影響,也就是說,在不同的作用域内可以定義同名的變量。(對)
- 全局變量會增加不同函數之間的隐式耦合度,進而降低代碼可讀性,是以應盡量避免過多使用全局變量。(對)
- 函數内部定義的局部變量當函數調用結束後被自動删除。(對)
- 在函數内部,既可以使用global來聲明使用外部全局變量,也可以使用global直接定義全局變量。(對)
- 在函數内部沒有辦法定義全局變量。(錯)
- 對于數字n,如果表達式 0 not in [n%d for d in range(2, n)] 的值為True則說明n是素數。(對)
- 表達式 ‘a’+1的值為’b’。(錯)
- 在函數内部直接修改形參的值并不影響外部實參的值。(對)
- 在函數内部沒有任何方法可以影響實參的值。(錯)
- 調用帶有預設值參數的函數時,不能為預設值參數傳遞任何值,必須使用函數定義時設定的預設值。(錯)
- 建立隻包含一個元素的元組時,必須在元素後面加一個逗号,例如(3,)。(對)
- 在同一個作用域内,局部變量會隐藏同名的全局變量。(對)
- 形參可以看做是函數内部的局部變量,函數運作結束之後形參就不可通路了。(對)
- 假設已導入random标準庫,那麼表達式 max([random.randint(1, 10) for i in range(10)]) 的值一定是10。(錯)
- Python标準庫random的方法randint(m,n)用來生成一個[m,n]區間上的随機整數。(對)
- Python中一切内容都可以稱為對象。(對)
- 棧和隊列的都具有先入後出的特點。(錯)
- 在一個軟體的設計與開發中,所有類名、函數名、變量名都應該遵循統一的風格和規範。(對)
- 定義類時所有執行個體方法的第一個參數用來表示對象本身,在類的外部通過對象名來調用執行個體方法時不需要為該參數傳值。(對)
- 在面向對象程式設計中,函數和方法是完全一樣的,都必須為所有參數進行傳值。(錯)
- Python中沒有嚴格意義上的私有成員。(對)
- 在Python中定義類時,運算符重載是通過重寫特殊方法實作的。例如,在類中實作了__mul__()方法即可支援該類對象的**運算符。(錯)
- 在IDLE互動模式下,一個下劃線“_”表示解釋器中最後一次顯示的内容或最後一次語句正确執行的輸出結果。(對)
- 對于Python類中的私有成員,可以通過“對象名._類名__私有成員名”的方式來通路。(對)
- 運算符 / 在Python 2.x和Python 3.x中具有相同的功能。(錯)
- 運算符“-”可以用于集合的差集運算。(對)
- 如果定義類時沒有編寫析構函數,Python将提供一個預設的析構函數進行必要的資源清理工作。(對)
- 已知seq為長度大于10的清單,并且已導入random子產品,那麼[random.choice(seq) for i in range(10)]和random.sample(seq,10)等價。(錯)
- 在派生類中可以通過“基類名.方法名()”的方式來調用基類中的方法。(對)
- Python支援多繼承,如果父類中有相同的方法名,而在子類中調用時沒有指定父類名,則Python解釋器将從左向右按順序進行搜尋。(對)
- 對檔案進行讀寫操作之後必須顯式關閉檔案以確定所有内容都得到儲存。(對)
- Python标準庫os中的方法startfile()可以啟動任何已關聯應用程式的檔案,并自動調用關聯的程式。(對)
- 程式中異常處理結構在大多數情況下是沒必要的。(錯)
- 在try...except...else結構中,如果try塊的語句引發了異常則會執行else塊中的代碼。(錯)
- Python标準庫threading中的Lock、RLock、Condition、Event、Semaphore對象都可以用來實作線程同步。(對)
- 異常處理結構中的finally塊中代碼仍然有可能出錯進而再次引發異常。(對)
- 在GUI設計中,複選框往往用來實作非互斥多選的功能,多個複選框之間的選擇互不影響。(對)
- 在GUI設計中,單選按鈕用來實作使用者在多個選項中的互斥選擇,在同一組内多個選項中隻能選擇一個,當選擇發生變化之後,之前選中的選項自動失效。(對)
- 在Python中定義類時執行個體方法的第一個參數名稱必須是self。(錯)
- 在Python中定義類時執行個體方法的第一個參數名稱不管是什麼,都表示對象自身。(對)
- Python代碼可以内嵌在asp檔案中。(對)
- 無法配置IIS來支援Python程式的運作。(錯)
- Python标準庫os中的方法startfile()可以用來打開外部程式或檔案,系統會自動關聯相應的程式來打開或執行指定的檔案。(對)
- 在編寫應用程式時,應合理控制線程數量,線程并不是越多越好。(對)
- 在多線程程式設計時,當某子線程的daemon屬性為False時,主線程結束時會檢測該子線程是否結束,如果該子線程尚未運作結束,則主線程會等待它完成後再退出。(對)
- Python隻能使用内置資料庫SQLite,無法通路MS SQLServer、ACCESS或Oracle、MySQL等資料庫。(錯)
- 使用OpenGL畫圖時,畫點是最基本的操作,具體生成的圖形由glBegin()函數指定的mode來決定。例如,mode值為GL_TRIANGLES時表示将要繪制三角形。(對)
- OpenGL采用的“狀态機”工作方式,一旦設定了某種狀态以後,除非顯式修改該狀态,否則該狀态将一直保持。(對)
- 假設os子產品已導入,那麼清單推導式 [filename for filename in os.listdir('C:\\Windows') if filename.endswith('.exe')] 的作用是列出C:\Windows檔案夾中所有擴充名為.exe的檔案。(對)
- 表達式 list('[1, 2, 3]') 的值是[1, 2, 3]。(錯)
- 在函數内部沒有任何聲明的情況下直接為某個變量指派,這個變量一定是函數内部的局部變量。(對)
- 定義類時如果實作了__contains__()方法,該類對象即可支援成員測試運算in。(對)
- 定義類時如果實作了__len__()方法,該類對象即可支援内置函數len()。(對)
- 定義類時實作了__eq__()方法,該類對象即可支援運算符==。(對)
- 定義類時實作了__pow__()方法,該類對象即可支援運算符**。(對)
- 二進制檔案不能使用記事本程式打開。(錯)
- 使用普通文本編輯器軟體也可以正常檢視二進制檔案的内容。(錯)
- 二進制檔案也可以使用記事本或其他文本編輯器打開,但是一般來說無法正常檢視其中的内容。(對)
- Python标準庫os中的方法isfile()可以用來測試給定的路徑是否為檔案。(對)
- Python标準庫os中的方法exists()可以用來測試給定路徑的檔案是否存在。(對)
- Python标準庫os中的方法isdir()可以用來測試給定的路徑是否為檔案夾。(對)
- Python标準庫os中的方法listdir()傳回包含指定路徑中所有檔案和檔案夾名稱的清單。(對)
- Python擴充庫xlwt支援對Excel 2003或更低版本的Excel檔案進行寫操作。(對)
- Python擴充庫xlrd支援對Excel 2003或更低版本的Excel檔案進行讀操作。(對)
- 帶有else子句的異常處理結構,如果不發生異常則執行else子句中的代碼。(對)
- 異常處理結構也不是萬能的,處理異常的代碼也有引發異常的可能。(對)
- 在異常處理結構中,不論是否發生異常,finally子句中的代碼總是會執行的。(對)
- 在Python中定義函數時不需要聲明函數參數的類型。(對)
- 在Python中定義函數時不需要聲明函數的傳回值類型。(對)
- 在函數中沒有任何辦法可以通過形參來影響實參的值。(錯)
- 已知 x = 3,那麼執行語句 x+=6 之後,x的記憶體位址不變。(錯)
- 已知x為非空字元串,那麼表達式 ''.join(x.split()) == x 的值一定為True。(錯)
- 已知x為非空字元串,那麼表達式 ','.join(x.split(',')) == x 的值一定為True。(對)
- 在Python中可以使用 for 作為變量名。(錯)
- 在Python中可以使用 id 作為變量名,盡管不建議這樣做。(對)
- Python關鍵字不可以作為變量名。(對)
- 一個數字5也是合法的Python表達式。(對)
- 同一個清單對象中的元素類型可以各不相同。(對)
- 同一個清單對象中所有元素必須為相同類型。(錯)
- 已知x為非空清單,那麼執行語句x[0] = 3之後,清單對象x的記憶體位址不變。(對)
- 清單可以作為集合的元素。(錯)
- 集合可以作為清單的元素。(對)
- 元組可以作為集合的元素。(對)
- 集合可以作為元組的元素。(對)
- 字典可以作為集合的元素。(錯)
- 集合可以作為字典的鍵。(錯)
- 集合可以作為字典的值。(對)
- 可以使用del删除集合中的部分元素。(錯)
- 标準庫os的rename()方法可以實作檔案移動操作。(對)
- 标準庫os的listdir()方法預設隻能列出指定檔案夾中目前層級的檔案和檔案夾清單,而不能列出其子檔案夾中的檔案。(對)
- 當作為條件表達式時,[]與None等價。(對)
- 表達式 [] == None 的值為True。(錯)
- 當作為條件表達式時,{}與None等價。(對)
- 表達式 {}==None 的值為True。(錯)
- 表達式 pow(3,2) == 3**2 的值為True。(對)
- 當作為條件表達式時,空值、空字元串、空清單、空元組、空字典、空集合、空疊代對象以及任意形式的數字0都等價于False。(對)
- 在定義函數時,某個參數名字前面帶有一個*符号表示可變長度參數,可以接收任意多個普通實參并存放于一個元組之中。(對)
- 在定義函數時,某個參數名字前面帶有兩個*符号表示可變長度參數,可以接收任意多個關鍵參數并将其存放于一個字典之中。(對)
- 定義函數時,帶有預設值的參數必須出現在參數清單的最右端,任何一個帶有預設值的參數右邊不允許出現沒有預設值的參數。(對)
- 在調用函數時,可以通過關鍵參數的形式進行傳值,進而避免必須記住函數形參順序的麻煩。(對)
- 在調用函數時,必須牢記函數形參順序才能正确傳值。(錯)
- 調用函數時傳遞的實參個數必須與函數形參個數相等才行。(錯)
- 正規表達式對象的match()方法可以在字元串的指定位置開始進行指定模式的比對。(對)
- 使用正規表達式對字元串進行分割時,可以指定多個分隔符,而字元串對象的split()方法無法做到這一點。(對)
- 在編寫函數時,建議首先對形參進行類型檢查和數值範圍檢查之後再編寫功能代碼,或者使用異常處理結構,盡量避免代碼抛出異常而導緻程式崩潰。(對)
- 執行語句 from math import sin 之後,可以直接使用 sin() 函數,例如 sin(3)。(對)
- 清單對象的pop()方法預設删除并傳回最後一個元素,如果清單已空則抛出異常。(對)
- 在Python中定義類時,如果某個成員名稱前有2個下劃線則表示是私有成員。(對)
- 在類定義的外部沒有任何辦法可以通路對象的私有成員。(錯)
- 可以使用py2exe或pyinstaller等擴充庫把Python源程式打包成為exe檔案,進而脫離Python環境在Windows平台上運作。(對)
- Python程式隻能在安裝了Python環境的計算機上以源代碼形式運作。(錯)
- 不同版本的Python不能安裝到同一台計算機上。(錯)
- 一般來說,Python擴充庫沒有通用于所有版本Python的,安裝時應選擇與已安裝Python的版本對應的擴充庫。
- 表達式 {1, 2} * 2 的值為 {1, 2, 1, 2}。(錯)
- Python變量名區分大小寫,是以student和Student不是同一個變量。(對)
- 正規表達式元字元“^”一般用來表示從字元串開始處進行比對,用在一對方括号中的時候則表示反向比對,不比對方括号中的字元。(對)
- 正規表達式元字元“\s”用來比對任意空白字元。(對)
- 正規表達式 元字元“\d”用來比對任意數字字元。(對)
- lambda表達式中可以使用任意複雜的表達式,但是必須隻編寫一個表達式。(對)
- Python類的構造函數是__init__()。(對)
- 定義類時,在一個方法前面使用@classmethod進行修飾,則該方法屬于類方法。(對)
- 定義類時,在一個方法前面使用@staticmethod進行休息,則該方法屬于靜态方法。(對)
- 通過對象不能調用類方法和靜态方法。(錯)
- 在Python中可以為自定義類的對象動态增加新成員。(對)
- Python類不支援多繼承。(錯)
- 屬性可以像資料成員一樣進行通路,但指派時具有方法的優點,可以對新值進行檢查。(對)
- 檔案對象是可以疊代的。(對)
- 檔案對象的tell()方法用來傳回檔案指針的目前位置。(對)
- 以寫模式打開的檔案無法進讀操作。(對)
- 假設已成功導入os和sys标準庫,那麼表達式 os.path.dirname(sys.executable) 的值為Python安裝目錄。(對)
- 隻可以動态為對象增加資料成員,而不能為對象動态增加成員方法。(錯)
- Python字典支援雙向索引。(錯)
- Python集合支援雙向索引。(錯)
- Python元組支援雙向索引。(對)
- 假設re子產品已成功導入,并且有 pattern = re.compile('^'+'\.'.join([r'\d{1,3}' for i in range(4)])+'$'),那麼表達式 pattern.match('192.168.1.103') 的值為None。(錯)
- 假設random子產品已導入,那麼表達式 random.sample(range(10), 20) 的作用是生成20個不重複的整數。(錯)
- 假設random子產品已導入,那麼表達式 random.sample(range(10), 7) 的作用是生成7個不重複的整數。(對)
- 在Python 3.x中reduce()是内置函數。(錯)
- 以讀模式打開檔案時,檔案指針指向檔案開始處。(對)
- 以追加模式打開檔案時,檔案指針指向檔案尾。(對)
- 已知x = (1, 2, 3, 4),那麼執行x[0] = 5之後,x的值為(5, 2, 3, 4)。(錯)
- 已知x = 3,那麼執行x += 6語句前後x的記憶體位址是不變的。(錯)
- 成員測試運算符in作用于集合時比作用于清單快得多。(對)
- 在Python 3.x中,使用内置函數input()接收使用者輸入時,不論使用者輸入的什麼格式,一律按字元串進行傳回。(對)
- 安裝Python擴充庫時隻能使用pip工具線上安裝,如果安裝不成功就沒有别的辦法了。(錯)
- 使用random子產品的函數randint(1, 100)擷取随機數時,有可能會得到100。(對)
- 如果隻需要math子產品中的sin()函數,建議使用from math import sin來導入,而不要使用import math導入整個子產品。(對)
- 已知清單x = [1, 2, 3, 4],那麼表達式x.find(5)的值應為-1。(錯)
- 清單對象的排序方法sort()隻能按元素從小到大排列,不支援别的排序方式。(錯)
- g = lambda x: 3不是一個合法的指派表達式。(錯)
- 内置函數len()傳回指定序列的元素個數,适用于清單、元組、字元串、字典、集合以及range、zip等疊代對象。(對)
- 已知x和y是兩個等長的整數清單,那麼表達式sum((i*j for i, j in zip(x, y)))的作用是計算這兩個清單所表示的向量的内積。(對)
- 已知x和y是兩個等長的整數清單,那麼表達式[i+j for i,j in zip(x,y)]的作用時計算這兩個清單所表示的向量的和。(對)
- 表達式int('1'*64, 2)與sum(2**i for i in range(64))的計算結果是一樣的,但是前者更快一些。(對)
- 已知x = list(range(20)),那麼語句del x[::2]可以正常執行。(對)
- 已知x = list(range(20)),那麼語句x[::2] = []可以正常執行。(錯)
- 已知x = list(range(20)),那麼語句print(x[100:200])無法正常執行。(錯)
- 已知x是個清單對象,那麼執行語句y = x之後,對y所做的任何操作都會同樣作用到x上。(對)
- 已知x是個清單對象,那麼執行語句y = x[:]之後,對y所做的任何操作都會同樣作用到x上。(錯)
- 在Python中,變量不直接存儲值,而是存儲值的引用,也就是值在記憶體中的位址。(對)
- 表達式(i**2 for i in range(100))的結果是個元組。(錯)
- 在Python中元組的值是不可變的,是以,已知x = ([1], [2]),那麼語句x[0].append(3)是無法正常執行的。(錯)
- 包含yield語句的函數一般成為生成器函數,可以用來建立生成器對象。(對)
- 在函數中yield語句的作用和return完全一樣。(錯)
- Python内置的字典dict中元素是按添加的順序依次進行存儲的。(錯)
- Python内置的集合set中元素順序是按元素的哈希值進行存儲的,并不是按先後順序。(對)
- 已知x = {1:1, 2:2},那麼語句x[3] =3無法正常執行。(錯)
- Python内置字典是無序的,如果需要一個可以記住元素插入順序的字典,可以使用collections.OrderedDict。(對)
- 語句pass僅起到占位符的作用,并不會做任何操作。(對)
- 在條件表達式中不允許使用指派運算符“=”,會提示文法錯誤。(對)
- 任何包含__call__()方法的類的對象都是可調用的。(對)
- 在Python中函數和類都屬于可調用對象。(對)
- 無法使用lambda表達式定義有名字的函數。(錯)
- 已知x是一個清單,那麼x = x[3:] + x[:3]可以實作把清單x中的所有元素循環左移3位。(對)
- 已知x和y是兩個字元串,那麼表達式sum((1 for i,j in zip(x,y) if i==j))可以用來計算兩個字元串中對應位置字元相等的個數。(對)
- 函數和對象方法是一樣的,内部實作和外部調用都沒有任何差別。(錯)
- 在設計派生類時,基類的私有成員預設是不會繼承的。(對)
- 如果在設計一個類時實作類__len__()方法,那麼該類的對象會自動支援Python内置函數len()。(對)
- Python 3.x中字元串對象的encode()方法預設使用utf8作為編碼方式。(對)
- 已知x = 'hellow world.'.encode(),那麼表達式x.decode('gbk')的值為'hellow world.'。(對)
- 已知x = 'Python是一種非常好的程式設計語言'.encode(),那麼表達式x.decode('gbk')的值為'Python是一種非常好的程式設計語言'。(錯)
- 正規表達式'^http'隻能比對所有以'http'開頭的字元串。(對)
- 正規表達式'^\d{18}|\d{15}$'隻能檢查給定字元串是否為18位或15位數字字元,并不能保證一定是合法的身份證号。(對)
- 二進制檔案也可以使用記事本程式打開,隻是無法正确閱讀和了解其中的内容。(對)
- 正規表達式'[^abc]'可以一個比對任意除'a'、'b'、'c'之外的字元。(對)
- 正規表達式'python|perl'或'p(ython|erl)'都可以比對'python'或'perl'。(對)
- 文本檔案是可以疊代的,可以使用for line in fp類似的語句周遊檔案對象fp中的每一行。(對)
- Python的主程式檔案python.exe屬于二進制檔案。(對)
- 使用記事本程式也可以打開二進制檔案,隻不過無法正确識别其中的内容。(對)
- 對字元串資訊進行編碼以後,必須使用同樣的或者相容的編碼格式進行解碼才能還原本來的資訊。(對)
- 使用pickle進行序列化得到的二進制檔案使用struct也可以正确地進行反序列化。(錯)
- 已知目前檔案夾中有一個檔案readme.txt具有隻讀屬性,假設标準庫os已正确導入,那麼可以通過語句os.chmod('readme.txt', 0o777)來删除該檔案的隻讀屬性。(對)
- Python标準庫os的函數remove()不能删除具有隻讀屬性的檔案。(對)
- 位元組串b'hello world'和b'hello world.'的MD5值相差很小。(錯)
- 由于異常處理結構try...except...finally...中finally裡的語句塊總是被執行的,是以把關閉檔案的代碼放到finally塊裡肯定是萬無一失,一定能保證檔案被正确關閉并且不會引發任何異常。(錯)
- 使用TCP協定進行通信時,必須首先建立連接配接,然後進行資料傳輸,最後再關閉連接配接。(對)
- TCP是可以提供良好服務品質的傳輸層協定,是以在任何場合都應該優先考慮使用。(錯)
- 在4核CPU平台上使用多線程程式設計技術可以很輕易地獲得400%的處理速度提升。(錯)
- 多線程程式設計技術主要目的是為了提高計算機硬體的使用率,沒有别的作用了。(錯)
- 簡答題
- 簡單解釋Python基于值的自動記憶體管理方式?(Python采用的是基于值得記憶體管理方式,在Python中可以為不同變量指派為相同值,這個值在記憶體中隻有一份,多個變量指向同一個記憶體位址;Python具有自動記憶體管理功能,會自動跟蹤記憶體中所有的值,對于沒有任何變量指向的值,Python自動将其删除。)
- 寫出Python運算符&的兩種功能?(1)數字位運算;2)集合交集運算。)
- 在Python中導入子產品中的對象有哪幾種方式?(1)import 子產品名 [as 别名];2)from 子產品名 import 對象名[ as 别名];3)from math import *)
- 解釋Python腳本程式的“__name__”變量及其作用?(每個Python腳本在運作時都有一個“__name__”屬性。如果腳本作為子產品被導入,則其“__name__”屬性的值被自動設定為子產品名;如果腳本獨立運作,則其“__name__”屬性值被自動設定為“__main__”。利用“__name__”屬性即可控制Python程式的運作方式。)
- 為什麼應盡量從清單的尾部進行元素的增加與删除操作?(當清單增加或删除元素時,清單對象自動進行記憶體擴充或收縮,進而保證元素之間沒有縫隙,但這涉及到清單元素的移動,效率較低,應盡量從清單尾部進行元素的增加與删除操作以提高處理速度。)
- 分析邏輯運算符“or”的短路求值特性?(假設有表達式“表達式1 or 表達式2”,如果表達式1的值等價于True,那麼無論表達式2的值是什麼,整個表達式的值總是等價于True。是以,不需要再計算表達式2的值。)
- 簡單解釋Python中短字元串駐留機制?(對于短字元串,将其指派給多個不同的對象時,記憶體中隻有一個副本,多個對象共享改副本。)
- 異常和錯誤有什麼差別?(異常是指因為程式執行過程中出錯而在正常控制流以外采取的行為。嚴格來說,文法錯誤和邏輯錯誤不屬于異常,但有些文法錯誤往往會導緻異常,例如由于大小寫拼寫錯誤而通路不存在的對象,或者試圖通路不存在的檔案,等等。)
- 使用pdb子產品進行Python程式調試主要有哪幾種用法?(1)在互動模式下使用pdb子產品提供的功能可以直接調試語句塊、表達式、函數等多種腳本。2)在程式中嵌入斷點來實作調試功能。在程式中首先導入pdb子產品,然後使用pdb.set_trace()在需要的位置設定斷點。如果程式中存在通過該方法調用顯式插入的斷點,那麼在指令提示符環境下執行該程式或輕按兩下執行程式時将自動打開pdb調試環境,即使該程式目前不處于調試狀态。3)使用指令行調試程式。在指令行提示符下執行“python –m pdb 腳本檔案名”,則直接進入調試環境;當調試結束或程式正常結束以後,pdb将重新開機該程式。)
- 閱讀下面的代碼,并分析假設檔案“D:\test.txt”不存在的情況下兩段代碼可能發生的問題。
代碼1:
>>> try:
fp = open(r'd:\test.txt')
print('Hello world!', file=fp)
finally:
fp.close()
代碼2:
>>> try:
fp = open(r'd:\test.txt', 'a+')
print('Hello world!', file=fp)
finally:
fp.close()
答:
假設檔案“D:\test.txt”不存在,那麼第一段代碼會抛出異常,提示fp沒有定義;第二段代碼執行正常。原因是第二段代碼使用内置函數open()打開指定檔案時如果不存在則會建立該檔案,進而不會抛出異常。
- 程式設計題
- 編寫程式,在D盤根目錄下建立一個文本檔案test.txt,并向其中寫入字元串hello world。
答:
fp = open(r’D:\test.txt’, ‘a+’)
print(‘hello world’, file=fp)
fp.close()
- 寫出下面代碼的優化版本,提高運作效率。
x = list(range(500))
for item in x:
t = 5**5
print(item+t)
答:
x = list(range(500))
t = 5**5
for item in x:
print(item+t)
- 編寫程式,生成一個包含20個随機整數的清單,然後對其中偶數下标的元素進行降序排列,奇數下标的元素不變。(提示:使用切片。)
答:
import random
x = [random.randint(0,100) for i in range(20)]
print(x)
y = x[::2]
y.sort(reverse=True)
x[::2] = y
print(x)
- 寫出下面代碼的執行結果。
def Join(List, sep=None):
return (sep or ',').join(List)
print(Join(['a', 'b', 'c']))
print(Join(['a', 'b', 'c'],':'))
答:
a,b,c
a:b:c
- 寫出下面代碼的運作結果。
def Sum(a, b=3, c=5):
return sum([a, b, c])
print(Sum(a=8, c=2))
print(Sum(8))
print(Sum(8,2))
答:
13
16
15
- 寫出下面代碼的運作結果。
def Sum(*p):
return sum(p)
print(Sum(3, 5, 8))
print(Sum(8))
print(Sum(8, 2, 10))
答:
16
8
20
- 編寫函數,判斷一個數字是否為素數,是則傳回字元串YES,否則傳回字元串NO。
答:
import math
def IsPrime(v):
n = int(math.sqrt(v)+1)
for i in range(2,n):
if v%i==0:
return 'No'
else:
return 'Yes'
- 編寫函數,模拟Python内置函數sorted()。
答:
def Sorted(v):
t = v[::]
r = []
while t:
tt = min(t)
r.append(tt)
t.remove(tt)
return r
- 編寫程式,生成包含20個随機數的清單,然後将前10個元素升序排列,後10個元素降序排列,并輸出結果。
答:
import random
x = [random.randint(0,100) for i in range(20)]
print(x)
y = x[0:10]
y.sort()
x[0:10] = y
y = x[10:20]
y.sort(reverse=True)
x[10:20] = y
print(x)
- 編寫程式,運作後使用者輸入4位整數作為年份,判斷其是否為閏年。如果年份能被400整除,則為閏年;如果年份能被4整除但不能被100整除也為閏年。
答:
x = input('Please input an integer of 4 digits meaning the year:')
x = eval(x)
if x%400==0 or (x%4==0 and not x%100==0):
print('Yes')
else:
print('No')
- 編寫程式,實作分段函數計算,如下表所示。
x | y |
x<0 | |
0<=x<5 | x |
5<=x<10 | 3x-5 |
10<=x<20 | 0.5x-2 |
20<=x |
答:
x = input('Please input x:')
x = eval(x)
if x<0 or x>=20:
print(0)
elif 0<=x<5:
print(x)
elif 5<=x<10:
print(3*x-5)
elif 10<=x<20:
print(0.5*x-2)
- 閱讀下面的程式,判斷其是否可以正常運作,如果可以運作則寫出執行結果,如果不能運作則寫出理由。
class Test:
def __init__(self, value):
self.__value = value
@property
def value(self):
return self.__value
t = Test(3)
t.value = 5
print(t.value)
答:
不能運作。程式中定義的是隻讀屬性,不能修改屬性的值。
- 下面代碼的功能是,随機生成50個介于[1,20]之間的整數,然後統計每個整數出現頻率。請把缺少的代碼補全。
import random
x = [random.____________(1,20) for i in range(_______)]
r = dict()
for i in x:
r[i] = r.get(i, _____)+1
for k, v in r.items():
print(k, v)
答:
分别填寫randint、50、0
- 假設有Python程式檔案demo.py,代碼如下:
def main():
if __name__ == '__main__':
print(1)
else:
print(2)
main()
将該程式檔案直接運作時輸出結果為_________,作為子產品導入時得到結果___________-。(1、2)
- 下面程式的執行結果是__________________。(1)
s = 0
for i in range(1,101):
s += i
else:
print(1)
- 下面程式的執行結果是______________。(1275)
s = 0
for i in range(1,101):
s += i
if i == 50:
print(s)
break
else:
print(1)
- 下面的程式是否能夠正常執行,若不能,請解釋原因;若能,請分析其執行結果。
from random import randint
result = set()
while True:
result.add(randint(1,10))
if len(result)==20:
break
print(result)
答:無法正确執行,因為該程式的功能是從[1,10]區間中選擇20個不同的随機整數,而該區間并沒有這麼多整數,是以程式死循環。
- 下面的代碼是否能夠正确運作,若不能請解釋原因;若能,請分析其執行結果。
>>> x = list(range(20))
>>> for i in range(len(x)):
del x[i]
答:無法正确執行,因為删除清單元素時會影響其他元素在清單中的索引,上面的代碼會抛出下标越界的異常。
- 閱讀下面的代碼,解釋其功能。
>>> x = list(range(20))
>>> for index, value in enumerate(x):
if value == 3:
x[index] = 5
答:将清單x中值為3的元素修改為5。
- 閱讀下面的代碼,解釋其功能。
>>> x = [range(3*i, 3*i+5) for i in range(2)]
>>> x = list(map(list, x))
>>> x = list(map(list, zip(*x)))
答:首先生成一個包含清單的清單,然後模拟矩陣轉置。
- 閱讀下面的代碼,解釋其功能。
>>> import string
>>> x = string.ascii_letters + string.digits
>>> import random
>>> print(''.join(random.sample(x, 10)))
答:輸出由英文字母大小寫或數字組成的長度為10且不重複的随機字元串。
- 閱讀下面的代碼,分析其執行結果。
def demo(*p):
return sum(p)
print(demo(1,2,3,4,5))
print(demo(1,2,3))
答:輸出結果為
15
6
- 閱讀下面的代碼,分析其執行結果。
def demo(a, b, c=3, d=100):
return sum((a,b,c,d))
print(demo(1, 2, 3, 4))
print(demo(1, 2, d=3))
答:輸出結果為
10
9
- 下面的代碼輸出結果為_____________。(3)
def demo():
x = 5
x = 3
demo()
print(x)
- 下面函數的功能為_______________。(将序列循環左移k位,得到新序列并傳回)
def demo(lst, k):
if k<len(lst):
return lst[k:]+lst[:k]
- 編寫函數,求任意整數的二進制形式中最後連續0的個數。
def demo(n):
b_n = bin(n)
index = b_n.rfind('1') + 1
return len(b_n[index:])
- 有n個乒乓球運動員打淘汰賽,編寫函數計算至少需要多少場比賽才能決出冠軍,不允許直接使用n-1。
def demo(n):
if n == 1:
return 0
if n == 2:
return 1
m, c = divmod(n, 2)
return m + demo(c+m)
- 使用循環和清單推導式兩種方法求解百錢買百雞問題。假設大雞5元一隻,中雞3元一隻,小雞1元三隻,現有100元錢想買100隻雞,有多少種買法?
- 循環
>>> for x in range(21):
for y in range(34):
z = 100-x-y
if z%3==0 and 5*x + 3*y + z//3 == 100:
print(x,y,z)
0 25 75
4 18 78
8 11 81
12 4 84
- 清單推導式