A.包含一個循環結構
B.函數比較複雜
C.函數內部包含對本函數的再次調用
D.函數名稱做爲返回值python
答案:D
答案解析:遞歸函數是指函數內部包含對本函數的再次調用。編程
A.遞歸函數必須有基例
B.遞歸函數的基例再也不進行遞歸
C.每一個遞歸函數都只能有一個基例
D.遞歸函數的基例決定遞歸的深度app
答案:C
答案解析:每一個遞歸函數至少存在一個基例編程語言
A.提升代碼執行速度
B.複用代碼
C.加強代碼可讀性
D.下降編程複雜度模塊化
答案:C
答案解析:函數的做用是複用代碼、加強代碼可讀性、下降編程複雜度,而並不能提升代碼的執行速度。函數
A.參數是列表類型時,改變原參數的值
B.參數是整數類型時,不改變原參數的值
C.參數是組合類型(可變對象)時,改變原參數的值
D.參數的值是否改變與函數中對象的操做有關,與參數類型無關設計
答案:D
答案解析:python裏有可變對象和不可變對象之分。只有傳入的是不可變對象時,值纔不發生改變,如果可變對象,值的傳入須要注意。不可變對象:Number ,String ,Tuple,bool。可變對象: List , Set , Dictionary是能夠改變內部的元素 。code
A. 一個函數中只容許有一條return語句對象
B. Python中,def和return是函數必須使用的保留字
C. Python函數定義中沒有對參數指定類型,這說明,參數在函數中能夠看成任意類型使用
D. 函數eval()能夠用於數值表達式求值,例如eval(‘2*3+1’)排序
答案:D
答案解析:函數能夠不使用return語句或多條return語句,所以A,B不正確;Python函數定義中沒有對參數指定類型,函數中應根據實參的類型使用,C不正確。
def func(a,b): c = a **2 + b b =a return c a =10 b =100 c = func(a,b)+a
如下選項中描述錯誤的是
A. 執行該函數後,變量c的值爲200
B. 該函數名稱爲func
C.執行該函數後,變量b的值爲100
D.執行該函數後,變量a的值爲10
答案:A
答案解析:執行該函數後,變量c的值爲210
A.一個程序中的變量包含兩類:全局變量和局部變量
B.全局變量通常沒有縮進
C.全局變量在程序執行的全過程有效
D.全局變量不能和局部變量重名
答案:D
答案解析:全局變量能夠和局部變量重名,全局變量指的是在函數以外定義的變量,在程序執行全過程有效。全局變量在函數內部使用時,須要提早使用保留字global聲明。局部變量指在函數內部定義的變量,僅在函數內部有效,當函數退出時,變量將再也不存在。例如:
n =2 def multiply(x, y =10): n =x*y #局部變量n,和第一行代碼n不一樣。 return n #返回的n也是局部變量n s =multiply(99,2) print(s) print(n)
全局變量能夠和局部變量重名,所以D錯誤
A. 面向對象編程比面向過程編程更爲高級
B. 面向對象和麪向過程是編程語言的分類依據
C.模塊化設計就是面向對象的設計
D.全部面向對象編程能實現的功能採用面向過程一樣能完成
答案:D
答案解析:面向對象編程能實現的功能都可以採用面向過程一樣能完成
A. 書寫簡單
B. 執行效率高
C.必定要有基例
D.遞歸程序均可以有非遞歸編寫方法
答案:B
答案解析:遞歸程序的執行效率比較低
f = lambda x,y:y+x f(10,10)
A. 10
B. 20
C.10,10
D.100
答案:B
答案解析:lambda表達式至關於:
def fun(x, y): return x + y print(fun(10, 10))
A.函數定義中參數列表裏面的參數是實際參數,簡稱實參
B.參數列表中給出要傳入函數內部的參數,這類參數稱爲形式參數,簡稱形參
C.程序在調用時,將實參複製給函數的形參
D.程序在調用時,將形參複製給函數的實參
答案:C
答案解析:函數定義中參數列表裏面的參數是形參,參數列表中給出要傳入函數內部的參數,這類參數稱爲實參;程序在調用時,將實參複製給函數的形參
A. lambda函數也稱爲匿名函數
B. lambda函數將函數名做爲函數結果返回
C.定義了一種特殊的函數
D.lambda不是Python的保留字
答案:D
答案解析:lambda是Python的保留字
A. def vfunc(a, b = 2):
B. def vfunc(a, b):
C. def vfunc(a, b):
D. def vfunc(a, b):
答案:D
答案解析:def vfunc(* a, b):中的*(可選參數)應該放在後面,所以D錯誤
A. 在定義函數時,若是有些參數存在默認值,能夠在定義函數時直接爲這些參數指定默認值
B. 在定義函數時,能夠設計可變數量參數,經過在參數前增長星號(*)實現
C. 可選參數能夠定義在非可選參數的前面
D. 一個元組能夠傳遞給帶有星號的可變參數
答案:D
答案解析:可選參數不能夠定義在非可選參數的前面
A.函數中最多隻有一個return語句
B.函數必須有一個return語句
C.return只能返回一個值
D.函數能夠沒有return語句
答案:D
答案解析:函數return的個數沒有限制,能夠沒有return語句
A.函數是一段具備特定功能的、可重用的語句組
B.函數能完成特定的功能,對函數的使用不須要了解函數內部實現原理,只要瞭解函數的輸入輸出方式便可
C.使用函數的主要目的是下降編程難度和代碼重用
D.Python使用del保留字定義一個函數
答案:D
答案解析:Python使用def保留字定義一個函數
A.全局變量指在函數以外定義的變量,通常沒有縮進,在程序執行全過程有效
B.局部變量指在函數內部使用的變量,當函數退出時,變量依然存在,下次函數調用能夠繼續使用
C.使用global保留字聲明簡單數據類型變量後,該變量做爲全局變量使用
D.簡單數據類型變量不管是否與全局變量重名,僅在函數內部建立和使用,函數退出後變量被釋放
答案:D
答案解析:局部變量指在函數內部定義的變量,僅在函數內部有效,當函數退出時,變量將再也不存在。
A.lambda用於定義簡單的、可以一行內表示的函數
B.可使用lambda函數定義列表的排序原則
C.f = lambda x,y:x+y執行後,f的類型爲數字類型
D.lambda函數將函數名做爲函數結果返回
答案:D
答案解析:C選項中,f的類型依參數來肯定
def fact(n): if n == 0: return 1 else : return n * fact(n-1) num = eval(input('請輸入一個整數:')) print(fact(abs(int(num))))
A. 接受用戶輸入的整數N,輸出N的階乘值
B. 接受用戶輸入的整數N,判斷N是不是素數並輸出結論
C. 接受用戶輸入的整數N,判斷N是不是整數並輸出結論
D. 接受用戶輸入的整數N,判斷N是不是水仙花數
答案:D
答案解析:這是典型的遞歸函數,在return語句中調用函數自己。功能爲輸出N的階乘值
def fact(n): s = 1 for i in range(1,n+1): s *= i return s
如下選項中描述錯誤的是
A.代碼中n是可選參數
B.fact(n)函數功能爲求n的階乘
C.s是局部變量
D.range()函數是Python內置函數
答案:A
答案解析:代碼中n不是可選參數,可選參數有*或**
ls = ['car','truck'] def funC(a): ls.append(a) return funC('bus') print(ls)
如下選項中描述錯誤的是
A.ls.append(a)代碼中的ls是全局變量
B.執行代碼輸出結果爲[‘car’,’truck’]
C.ls.append(a)代碼中的ls是列表類型變量
D.funC(a)中a爲非可選參數
答案:B
答案解析:執行代碼輸出結果爲[‘car’,’truck’,'bus']
ls = ['car','truck'] def funC(a): ls = [] ls.append(a) return funC('bus') print(ls)
如下選項中描述錯誤的是
A.代碼函數定義中,ls.append(a)中的ls是局部變量
B.執行代碼輸出的結果爲['car', 'truck']
C.ls.append(a)代碼中的ls是列表類型
D.執行代碼輸出結果爲['car', 'truck', ’bus’]
答案:D
答案解析:funC函數內部的ls是局部變量,與全局變量不一樣,在函數調用結束後,局部變量就會消失。最終打印輸出的ls是全局變量。
import turtle def drawLine(draw): turtle.pendown() if draw else turtle.penup() turtle.fd(50) turtle.right(90) drawLine(True) drawLine(True) drawLine(True) drawLine(True)
如下選項中描述錯誤的是
A.運行代碼,在Python Turtle Graphic中,繪製一個正方形
B.代碼def drawLine(draw)中的draw可取值True或者False
C.代碼drawLine(True)中True替換爲-1,運行代碼結果不變
D.代碼drawLine(True)中True替換爲0,運行代碼結果不變
答案:D
答案解析:if else簡寫形式例:
a, b, c = 1, 2, 3 if a > b: c = a else: c = b
可簡寫爲:
a, b, c = 1, 2, 3 c = a if a > b else b
參數若是須要布爾值,而輸入的是數值,那麼只須要該數值爲非0的數,對應爲True,若是輸入的數值爲0,則表明False,所以D不正確
import turtle def drawLine(draw): turtle.pendown() if draw else turtle.penup() turtle.fd(50) turtle.right(90) drawLine(True) drawLine(0) drawLine(True) drawLine(True) turtle.left(90) drawLine(0) drawLine(True) drawLine(True)
如下選項中描述錯誤的是
A.運行代碼,在Python Turtle Graphic中,繪製一個數碼管數字2
B.代碼drawLine(True)中True替換爲0,運行代碼結果不變
C.代碼drawLine(True)中True替換爲-1,運行代碼結果不變
D.代碼def drawLine(draw)中的draw可取值0、一、-1等
答案:B
答案解析:參數若是須要布爾值,而輸入的是數值,那麼只須要該數值爲非0的數,對應爲True,若是輸入的數值爲0,則表明False。
def func(num): num += 1 a = 10 func(a) print(a)
A.10
B.11
C.出錯
D.int
答案:B
答案解析:函數在傳遞參數時,指將實參複製給形參,並未對實參自己發生改變。
def func(a, b): return a >> b s = func(5, 2) print(s)
A.20
B.6
C.1
D.12
答案:C
答案解析:a>>b表明將a轉爲二進制,而後向右移動b個位,(<<表示向左,>>表示向右)。a = 5,二進制爲101;b =2,也就是將101向右移動2位,變爲1。
def func(a, b): a *= b return a s = func(5, 2) print(s)
A. 20 B. 10 C. 1 D. 12
答案:B
def f2(a): if a > 33: return True li = [11, 22, 33, 44, 55] res = filter(f2, li) print(list(res))
A.[44,55]
B.[33,44,55]
C.[22,33,44]
D.[11,33,55]
答案:A 答案解析:filter()函數是 Python 內置的另外一個有用的高階函數,filter()函數接收一個函數 f 和一個列表,在本題中這個函數 f2 的做用是對每一個元素進行判斷是否大於33,若是大於則返回 True不然 False,filter()根據判斷結果自動過濾掉不符合條件的元素,也就是將返回爲True的元素組成的新list,所以本題選擇A。注意,res是對象類型。