下面語句運行后會報錯的是() (5.0分)
-
A 'Let's go!'
-
B 'Let\'s go!'
-
C '''say I "like this" '''
-
D r'C:\nowhere'
A運行會報錯
本題結束.
2.下列哪個表達式在Python中是非法的? () (5.0分)
-
A
x = y = z = 1
-
B
x = (y = z + 1)
-
C
x, y = y, x
-
D
x += y
x = (y = z + 1)是非法的
本題結束.
3.下列哪個不是有效的變量名() (5.0分)
-
A
_demo
-
B
banana
-
C
Numbr
-
D
my-score
D不是有效的變量名
本題結束.
-
A
set
-
B
list
-
C
dict
-
D
tuple
tuple是不可變數據類型
5.下列程序打印結果為?
nl=[1,2,5,3,5]
nl.append(4)
nl.insert(0,7)
nl.sort()
printnl (5.0分)
-
A
[1, 2, 3, 4, 5, 5, 7]
-
B
[0, 1, 2, 3, 4, 5, 5]
-
C
[7, 5, 4, 3, 2, 1]
-
D
[1, 2, 3, 4, 5, 7]
append 列表尾增加元素 insert 列表某個位置插入元素 sort 列表排序默認升序
以下代碼輸出的結果是?
deffunc():
pass
print(func())
(5.0分)
-
A
None
-
B
pass
-
C
什么都不輸出
-
D
程序報錯
使用pass定義一個什么都不做的空函數
-
A
(1,[2],3)
-
B
1,[2],3
-
C
1
-
D
(1,2,3)
多個返回值時,返回對象是元組
import re
str1="Python'sfeatures"
str2=re.match(r'(.*)on(.*?).*',str1,re.M|re.I)
printstr2.group(1) (5.0分)
-
A
Python
-
B
Pyth
-
C
thon’s
-
D
Python’s features
re.match(r'(.*)on(.*?).*',str1,re.M|re.I),將Python's 的on左邊和右邊分組
9.裝飾器的返回結果可以是? (5.0分)
-
A 函數
-
B 字符串
-
C 數字
-
D 以上皆可
裝飾器是可調用對象,其參數是函數。函數可以返回以上幾種形式結果
下列代碼輸出正確的是?
str1 ="Hello,World";
str2 =" World ";
print(str1.index(str2)); (5.0分)
-
A 5
-
B 6
-
C 7
-
D 程序報錯
str.index(str, beg=0, end=len(string)) str --指定檢索的字符串 beg--開始索引,默認為0。從下標0開始
-
A min = x if x < y else y
-
B max = x > y ? x : y
-
C if(x>y) print(x)
-
D while True:pass
AD語法正確
本題結束.
-
A 只能包含字母、數字 和 下划線。變量名可以以字母或者下划線開頭。但是不能以數字開頭。
-
B 不能包含空格,但可以使用下划線來分隔其中的單詞
-
C 不能使用Python中的關鍵字作為變量名
-
D 建議使用駝峰命名法,駝峰式命名分為大駝峰(UserName)。和小駝峰(userName)
-
A 函數可以賦值給一個變量
-
B 函數可以作為元素添加到集合對象中
-
C 函數可以作為參數值傳遞給其它函數
-
D 函數可以當做函數的返回值
上述幾項均正確
-
A import module_name
-
B from module_name import function_name
-
C from module_name import function_name as func1
-
D from module_name import *
以下都是模塊的方法
-
A
abs()
-
B
map()
-
C
len()
-
D
print()
以上都是常見的內置函數
-
否
Flask 是一個使用 Python 編寫的輕量級 Web 應用框架,使用 BSD 授權。
本題結束.
-
√
-
×
把函數作為參數傳入,這樣的函數稱為高階函數
18. sorted()函數不支持自定義排序 (5.0分)
-
√
-
×
sorted()可以接收一個key函數來實現自定義的排序
-
√
-
×
裝飾器的一大特性
-
√
-
×
在函數內部可以定義全局變量
1、以下程序輸出為:
def test(a,b,*args):
print(a)
print(b)
print(args)
test(11,22,33,44,55,66,77,88,99)
正確答案: A 你的答案: A (正確)
11 22 (33, 44, 55, 66, 77, 88, 99)
編譯錯誤
運行錯誤
11 22 (11,22,33, 44, 55, 66, 77, 88, 99)
2、下面程序運行結果為:
for i in range(5):
i+=1
print("-------")
if i==3:
continue
print(i)
正確答案: A
------- 1 ------- 2 ------- ------- 4 ------- 5
------- 1 ------- 2
------- 1 ------- 2 ------- 3
------- 1 ------- 2 ------- 4 ------- 5
解析:當數值為3時,----仍然要輸出,但是數值3不輸出;所以選擇A。
3、當一個嵌套函數在其外部區域引用了一個值時,該嵌套函數就是一個閉包,以下代碼輸出值為:
def adder(x):
def
wrapper(y):
return x + y
1
return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))
正確答案: D 你的答案: D (正確)
10
12
14
16
4、下列程序打印結果為( )
nl = [1,2,5,3,5]
nl.append(4)
nl.insert(0,7)
nl.sort()
print nl
正確答案: A 你的答案: A (正確)
[1, 2, 3, 4, 5, 5, 7]
[0, 1, 2, 3, 4, 5, 5]
[1, 2, 3, 4, 5, 7]
[7, 5, 4, 3, 2, 1]
5、下面哪個不是Python合法的標識符
正確答案: B
int32
40XL
self
name
解析:Python 中的標識符不能以數字開頭,這也是普遍編程語言的通用規則,可參考:
6、What gets printed?()
正確答案: C 你的答案: E (錯誤)
1
2
4
5
7
解析:set會移除集合中重復的數據,所以去重后就是 1,2,3,4 四個元素,所以長度就是4.
7、下述字符串格式化語法正確的是?
正確答案: D 你的答案: D (正確)
‘GNU’s Not %d %%’ % ‘UNIX’
‘GNU’s Not %d %%’ % ‘UNIX’
‘GNU’s Not %s %%’ % ‘UNIX’
‘GNU’s Not %s %%’ % ‘UNIX’
解析:python里面%d表數字,%s表示字符串,%%表示一個%;
單引號內嵌套單引號需要轉義字符/;單引號內嵌套雙引號不需要嵌套;
雙引號內嵌套雙引號需要轉義字符/;雙引號內引用單引號不需要轉義字符;
8、以下聲明錯誤的是:
正確答案: D 你的答案: C (錯誤)
dic = {}
dic = {100:200}
dic = {(1,2,3):‘test’}
dic = {[1,2,3]:‘test’}
解析:字典的鍵值必須是不可變類型,如數字,字符串,元組,而列表是可變類型。
9、在Python2中,下列哪種函式參數定義不合法?
正確答案: C 你的答案: B (錯誤)
def myfunc(*args):
def myfunc(arg1=1):
def myfunc(*args, a=1):
def myfunc(a=1, **args):
10、有如下類定義,下列描述錯誤的是?
class A(object):
pass
class B(A):
pass
b = B()
正確答案: D
isinstance(b, A) == True
isinstance(b, object) == True
issubclass(B, A) == True
issubclass(b, B) == True
解析:abc isinstance(object,classinfo),用於判斷object是否是classinfo的一個實例,或者object是否是classinfo類的子類的一個實例,如果是返回True. issubclass(class,classinfo),用於判斷class是否是classinfo類的子類,如果是返回True.
11、what gets printed? Assuming python version 2.x()
print type(1/2)
正確答案: A
<type ‘int’>
<type ‘number’>
<type ‘float’>
<type ‘double’>
<type ‘tuple’>
12、從運行層面上來看,從四個選項選出不同的一個。
正確答案: B 你的答案: B (正確)
JAVA
Python
objectC
C#
解析:A,C,D都是類C語言,B不是
Python是解釋執行的,其他語言都需要先編譯
13、import numpy as np
a = np.repeat(np.arange(5).reshape([1,-1]),10,axis = 0)+10.0 b = np.random.randint(5, size= a.shape)
c = np.argmin(a*b, axis=1)
b = np.zeros(a.shape)
b[np.arange(b.shape[0]), c] = 1
print b
以上函數輸出結果為()
正確答案: D
Hello World!
一個 shape = (5,10) 的隨機整數矩陣
一個 shape = (5,10) 的 one-hot 矩陣
一個 shape = (10,5) 的 one-hot 矩陣
14、Python中函數是對象,描述正確的是?
正確答案: A B C D 你的答案: B C (錯誤)
函數可以賦值給一個變量
函數可以作為元素添加到集合對象中
函數可以作為參數值傳遞給其它函數
函數可以當做函數的返回值
15、Python中單下划線_foo與雙下划線__foo與__foo__的成員,下列說法正確的是?
正確答案: A B C 你的答案: A B C (正確)
_foo 不能直接用於’from module import *’
__foo解析器用_classname__foo來代替這個名字,以區別和其他類相同的命名
__foo__代表python里特殊方法專用的標識
__foo 可以直接用於’from module import *’
16、關於return說法正確的是( )
正確答案: B D 你的答案: B C D (錯誤)
python函數中必須有return
return可以返回多個值
return沒有返回值時,函數自動返回Null
執行到return時,程序將停止函數內return后面的語句
17、下列關於python socket操作敘述正確的是( )
正確答案: C D 你的答案: A B C (錯誤)
使用recvfrom()接收TCP數據
使用getsockname()獲取連接套接字的遠程地址
使用connect()初始化TCP服務器連接
服務端使用listen()開始TCP監聽
1、下面代碼輸出結果是()
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print l
f(3,[3,2,1]) (5.0分)
-
A [0, 1]
-
B [0, 1, 0, 1, 4]
-
C [3, 2, 1, 0, 1, 4]
-
D [3, 2, 1, 0, 1, 4,5]
f(3,[3,2,1])輸出的是[3, 2, 1, 0, 1, 4]
-
A 5
-
B True
-
C (5)
-
D (True, 5)
語句x = 3==3, 5執行結束后,變量x的值為(True, 5)
-
A python函數中必須有return
-
B return只能返回一個值
-
C return沒有返回值時,函數自動返回Null
-
D 執行到return時,程序將停止函數內return后面的語句
python函數中不一定要有return;可以返回多個值;Python中空值為None
-
A
def myfunc(*args):
-
B
def myfunc(arg1=1):
-
C
def myfunc(*args, a=1):
-
D
def myfunc(a=1, **args):
在Python2中可變參數必須在必選參數和默認參數之后
5、下列模塊作用不匹配的是? (5.0分)
-
A os模塊負責程序與操作系統的交互
-
B sys模塊負責程序與python解釋器的交互
-
C urllib模塊URL 處理模塊包含urllib.request方法
-
D random模塊負責日志相關模塊主要用於輸出運行日志等等
D為logging模塊的功能
6、當一個嵌套函數在其外部區域引用了一個值時,該嵌套函數就是一個閉包,以下代碼輸出值為:
def adder(x):
def wrapper(y):
return x + y
return wrapper
adder5 = adder(5)
print(adder5(adder5(6))) (5.0分)
-
A
10
-
B
12
-
C
14
-
D
16
adder5= wrapper=5+y adder5(6)=11 adder5(adder5(6))=16
7、以下哪個代碼是正確的讀取一個文件? (5.0分)
-
A
f = open("test.txt", "read")
-
B
f = open("r","test.txt")
-
C
f = open("test.txt", "r")
-
D
f = open("read","test.txt")
open(name[, mode[, buffering]]) name :文件名 mode :打開文件的模式 buffering:寄存區
deftest(a,b,*args):
print(a)
print(b)
print(args)
test(1,2,3,4,5,6,7,8,9) (5.0分)
-
A
1 2 (3,4,5,6,7,8,9)
-
B
編譯錯誤
-
C
運行錯誤
-
D
1 2 (1,2,3,4,5,6,7,8,9)
deftest(a,b,*args)a,b位置參數;*args為不定長位置參數,傳入的參數被放入一個元祖里。
9、下列不是Iterator對象的是? (5.0分)
-
A
iter([])
-
B
(x for x in range(10)
-
C
iter('abc')
-
D
dict
D選項為是Iterable類型
Python中針對單下划線_foo與雙下划線__foo與__foo__的明明方式,下列說法錯誤的是? (5.0分)
-
A _foo 不能直接用於’from module import *’
-
B __foo解析器用_classname__foo來代替這個名字,以區別和其他類相同的命名
-
C __foo__代表python里特殊方法專用的標識
-
D __foo 可以直接用於’from module import *’
前后無下划線表示公用,前置單下划線為內容受保護,前置雙下划線表示私有,前后雙下划線表示系統內建的特殊方法
-
A 函數可以賦值給一個變量
-
B 函數可以作為元素添加到集合對象中
-
C 函數可以作為參數值傳遞給其它函數
-
D 函數可以當做函數的返回值
以上說法均正確
本題結束.
下列程序執行打印結果有()
def f1():
x = 10
print 'f1 x = %d' %(x)
def f2(x):
x = 20
print 'f2 x = %d' %(x)
def main():
x = 30
f1()
f2(x)
print 'main x = %d' %(x)
if __name__ == '__main__':
main() (5.0分)
-
A
f1x = 10
-
B
f2x = 10
-
C
f2x = 20
-
D
main x = 30
打印的結果是:f1x = 10 f2x = 20 main x = 30
本題結束.
-
A
a[-3]
-
B
a[2:13]
-
C
a[::3]
-
D
a[2-3]
考察切片問題 range(start, end, step),start:起始值;end:終值;step:步長,默認為1。
下列關於匿名函數的說法正確的是 (5.0分)
-
A
匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量
-
B
匿名函數只能有一個表達式
-
C
匿名函數不存在函數名沖突問題
-
D
lambda函數不能訪問自有參數列表之外或全局命名空間里的參數
以上都是匿名函數的特征
-
A 函數可以賦值給一個變量
-
B 函數可以作為元素添加到集合對象中
-
C 函數可以作為參數值傳遞給其它函數
-
D 函數可以當做函數的返回值
上述幾項均正確
-
是
-
否
復數虛部的后綴也可以是大寫的J。
本題結束.
-
√
-
×
isinstance((x for x in range(10)), Iterator)
-
√
-
×
__init__方法的第一個參數一定是self,表示創建的實例本身
-
√
-
×
過深的調用會導致棧溢出
-
√
-
×
函數中包含關鍵字yield就是生成器函數
《第四次考試》
1、下列代碼運行結果是?
a = map(lambda x:x**3,[1, 2, 3])
list(a) (5.0分)
-
A [1, 6, 9]
-
B [1, 12, 27]
-
C [1, 8, 27]
-
D (1, 6, 9)
map()函數接收兩個參數,一個是函數,一個是Iterable 。python使用 lambda 來創建匿名函數,函數內容為求x的三次方。
2、以下選項中,不屬於函數的作用的是? (5.0分)
-
A 提高代碼執行速度
-
B 降低編程復雜度
-
C 增強代碼可讀性
-
D 復用代碼
-
A set
-
B tuple
-
C dict
-
D list
可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple
-
A 遞歸程序都可以由非遞歸編寫方法
-
B 執行效率高
-
C 使用遞歸函數的優點是邏輯簡單清晰
-
D 遞歸函數就是函數在內部調用自身本身
遞歸效率不高,遞歸層次過多會導致棧溢出
def w1():
print('hello')
def inner():
print('python')
return inner()
w1() (5.0分)
-
A
hello python
-
B
hello
-
C
python
-
D
運行錯誤
外層函數返回的是函數調用,運行結果是hello python。若外層函數返回函數名,則為hello
foo = [1,2]
foo1 = foo
foo.append(3) (5.0分)
-
A foo 值為[1,2]
-
B foo 值為[1,2,3]
-
C foo1 值為[1,2]
-
D foo1 值為[1,2,3]
foo1 = foo為淺表復制,也稱為淺拷貝,只是將foo1和foo指向相同存儲地址
7、下列關於函數的參數說法正確的是 (5.0分)
-
A *args是可變參數,args接收的是一個tuple
-
B **kw是關鍵字參數,kw接收的是一個dict
-
C 默認參數在前,必選參數在后
-
D 函數的參數類型很多,但使用時最好不要同時使用太多組合
必選參數在前,默認參數在后(筆墨)
-
A Python中,一個.py文件就稱之為一個模塊
-
B Python引入包來來組織模塊避免模塊名沖突
-
C 每一個包目錄下面都會有一個__init__.py的文件
-
D 當一個模塊被導入到一個腳本,模塊頂層部分的代碼只會被執行一次。可以用 reload() 函數重新載入之前載入的模塊
s =['seashell','gold','pink','brown','purple','tomato']
print(s[1:4:2]) (5.0分)
-
是
-
否
輸出的是['gold', 'brown'],其實就是下標1到下標3的 走2步的數
上述描述都正確
