一、單項選擇題(本大題共 10 小題)
1、關(guān)于 Python 函數(shù)的定義,以下說法正確的是:
① 函數(shù)定義時必須有參數(shù)
② 函數(shù)必須使用 return 語句返回值
③ 函數(shù)定義使用 def 關(guān)鍵字
④ 函數(shù)名不能與 Python 關(guān)鍵字相同,但可以與內(nèi)置函數(shù)同名
2、以下函數(shù)調(diào)用會輸出什么結(jié)果?
print(test(1, c=4))① 10
② 7
③ 程序出錯
④ 6
3、關(guān)于函數(shù)參數(shù),以下描述錯誤的是:
① 位置參數(shù)必須在關(guān)鍵字參數(shù)之前
② 默認(rèn)參數(shù)必須放在非默認(rèn)參數(shù)之后
③ *args 用于接收任意數(shù)量的位置參數(shù)
④ **kwargs 用于接收任意數(shù)量的關(guān)鍵字參數(shù),但不能與位置參數(shù)混合使用
4、執(zhí)行以下代碼后,輸出結(jié)果是:
print("函數(shù)外:", x)① 函數(shù)內(nèi):10 函數(shù)外:10
② 函數(shù)內(nèi):5 函數(shù)外:5
③ 函數(shù)內(nèi):10 函數(shù)外:5
④ 程序出錯
5、以下關(guān)于遞歸函數(shù)的說法,正確的是:
① 遞歸函數(shù)必須包含 return 語句
② 遞歸函數(shù)必須有明確的終止條件
③ 遞歸函數(shù)比循環(huán)效率更高
④ Python 對遞歸深度沒有限制
6、以下哪個選項是合法的 lambda 函數(shù)?
① lambda x: x**2
② lambda: return x*2
③ lambda x, y: x+y; print(result)
④ def lambda(x): return x+1
7、以下代碼的輸出結(jié)果是:
print(func(4))① 24
② 10
③ 程序出錯
④ 120
8、關(guān)于 Python 的作用域規(guī)則,以下說法正確的是:
① 函數(shù)內(nèi)部可以訪問和修改全局變量而無需特殊聲明
② 使用 global 關(guān)鍵字可以在函數(shù)內(nèi)部創(chuàng)建全局變量
③ 嵌套函數(shù)中,內(nèi)部函數(shù)不能訪問外部函數(shù)的局部變量
④ LEGB 原則中的 E 表示External(外部模塊)
9、以下代碼使用了哪個高階函數(shù)?
squares = list(map(lambda x: x**2, numbers))① filter
② reduce
③ map
④ sorted
10、關(guān)于 Python 模塊導(dǎo)入的說法,以下哪項是正確的?
① import 語句會重復(fù)加載同一個模塊
② from module import * 只會導(dǎo)入模塊中以單下劃線 _ 開頭的名稱
③ 模塊被首次導(dǎo)入時會執(zhí)行該模塊的頂層代碼
④ import 導(dǎo)入模塊時不會執(zhí)行任何代碼,只建立引用
二、判斷題(本大題共 5 小題)
1、函數(shù)定義時的參數(shù)稱為實際參數(shù),調(diào)用時的參數(shù)稱為形式參數(shù)。( )
2、在函數(shù)中,return 語句可以返回多個值,這些值會被打包成元組。( )
3、lambda 函數(shù)可以包含多條語句和復(fù)雜的邏輯結(jié)構(gòu)。( )
4、在函數(shù)內(nèi)部修改全局變量需要使用 global 關(guān)鍵字聲明。( )
5、遞歸函數(shù)調(diào)用自身時,每次調(diào)用都會創(chuàng)建新的命名空間。( )
三、多項選擇題(本大題共 5 小題)
1、以下哪些是 Python 中合法的函數(shù)定義?
① def func(): pass
② def func(a, b=1): return a+b
③ def func(*args, **kwargs): pass
④ def func(a, b, /, c, *, d): pass
2、關(guān)于函數(shù)返回值,以下哪些說法是正確的?
① 函數(shù)可以沒有 return 語句,此時返回 None
② 函數(shù)可以返回多個值,實際上返回的是元組
③ return 語句執(zhí)行后,函數(shù)立即結(jié)束
④ 一個函數(shù)只能有一個 return 語句
3、以下哪些情況會創(chuàng)建新的作用域?
① 函數(shù)定義
② 類定義
③ 模塊導(dǎo)入
④ lambda 表達(dá)式
4、關(guān)于閉包,以下哪些描述是正確的?
① 閉包是函數(shù)和其相關(guān)引用環(huán)境的組合
② 閉包可以訪問外部函數(shù)的局部變量
③ 閉包可以修改外部函數(shù)的局部變量
④ 所有嵌套函數(shù)都是閉包
5、以下哪些是 Python 內(nèi)置的高階函數(shù)?
① map
② filter
③ reduce
④ apply
四、程序填充題(本大題共 3 小題)
1、以下函數(shù)用于計算斐波那契數(shù)列的第 n 項。請在下劃線處補全代碼。
print(fibonacci(6)) # 應(yīng)輸出82、以下函數(shù)使用遞歸計算 1 到 n 的和。請在下劃線處補全代碼。
print(sum_to_n(5)) # 應(yīng)輸出153、以下函數(shù)用于判斷一個數(shù)是否為偶數(shù),使用 lambda 表達(dá)式實現(xiàn)。請在下劃線處補全代碼。
print(is_even(5)) # 應(yīng)輸出False五、編程題(本大題共 3 小題)
1、字符串字符統(tǒng)計函數(shù)
編寫一個函數(shù) count_characters(s),統(tǒng)計傳入字符串中各類字符的數(shù)量。
要求:
(1)統(tǒng)計字符串中的數(shù)字、字母、空格、其他字符的數(shù)量
(2)返回一個包含四個計數(shù)的元組:(數(shù)字個數(shù), 字母個數(shù), 空格個數(shù), 其他字符個數(shù))
(3)使用 Python 字符串方法進(jìn)行字符類型判斷(如.isdigit(), .isalpha() 等)
編寫主程序測試該函數(shù)
(4)主要變量:s, digit_count, letter_count, space_count, other_count
2、素數(shù)生成函數(shù)
編寫一個函數(shù) find_primes(N),找出小于正整數(shù) N 的所有素數(shù)。
要求:
(1)使用 is_prime() 函數(shù)判斷每個數(shù)是否為素數(shù)
(2)返回一個包含所有素數(shù)的列表
(3)編寫主程序測試該函數(shù),輸出小于 100 的所有素數(shù)及其個數(shù)
(4)使用循環(huán)遍歷 2 到 N-1 的所有整數(shù)
(5)主要變量:N, primes, num
3、最大公約數(shù)與最小公倍數(shù)
編寫兩個函數(shù):
gcd(a, b):計算兩個整數(shù)的最大公約數(shù)(使用輾轉(zhuǎn)相除法)
lcm(a, b):計算兩個整數(shù)的最小公倍數(shù)(利用最大公約數(shù))
要求:
(1)最大公約數(shù)函數(shù)使用歐幾里得算法(輾轉(zhuǎn)相除法)
(2)最小公倍數(shù)函數(shù)調(diào)用最大公約數(shù)函數(shù):lcm = a * b / gcd(a, b)
(3)編寫主程序測試這兩個函數(shù)
(4)主要變量:a, b, result_gcd, result_lcm
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.