一、單項(xiàng)選擇題(本大題共 10 小題)
1、關(guān)于 Python 函數(shù)的定義,以下說法正確的是:
① 函數(shù)定義時(shí)必須有參數(shù)
② 函數(shù)必須使用 return 語句返回值
③ 函數(shù)定義使用 def 關(guān)鍵字
④ 函數(shù)名不能與 Python 關(guān)鍵字相同,但可以與內(nèi)置函數(shù)同名
2、以下函數(shù)調(diào)用會(huì)輸出什么結(jié)果?
print(test(1, c=4))① 10
② 7
③ 程序出錯(cuò)
④ 6
3、關(guān)于函數(shù)參數(shù),以下描述錯(cuò)誤的是:
① 位置參數(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
④ 程序出錯(cuò)
5、以下關(guān)于遞歸函數(shù)的說法,正確的是:
① 遞歸函數(shù)必須包含 return 語句
② 遞歸函數(shù)必須有明確的終止條件
③ 遞歸函數(shù)比循環(huán)效率更高
④ Python 對遞歸深度沒有限制
6、以下哪個(gè)選項(xiàng)是合法的 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
③ 程序出錯(cuò)
④ 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、以下代碼使用了哪個(gè)高階函數(shù)?
squares = list(map(lambda x: x**2, numbers))① filter
② reduce
③ map
④ sorted
10、關(guān)于 Python 模塊導(dǎo)入的說法,以下哪項(xiàng)是正確的?
① import 語句會(huì)重復(fù)加載同一個(gè)模塊
② from module import * 只會(huì)導(dǎo)入模塊中以單下劃線 _ 開頭的名稱
③ 模塊被首次導(dǎo)入時(shí)會(huì)執(zhí)行該模塊的頂層代碼
④ import 導(dǎo)入模塊時(shí)不會(huì)執(zhí)行任何代碼,只建立引用
二、判斷題(本大題共 5 小題)
1、函數(shù)定義時(shí)的參數(shù)稱為實(shí)際參數(shù),調(diào)用時(shí)的參數(shù)稱為形式參數(shù)。( )
2、在函數(shù)中,return 語句可以返回多個(gè)值,這些值會(huì)被打包成元組。( )
3、lambda 函數(shù)可以包含多條語句和復(fù)雜的邏輯結(jié)構(gòu)。( )
4、在函數(shù)內(nèi)部修改全局變量需要使用 global 關(guān)鍵字聲明。( )
5、遞歸函數(shù)調(diào)用自身時(shí),每次調(diào)用都會(huì)創(chuàng)建新的命名空間。( )
三、多項(xià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 語句,此時(shí)返回 None
② 函數(shù)可以返回多個(gè)值,實(shí)際上返回的是元組
③ return 語句執(zhí)行后,函數(shù)立即結(jié)束
④ 一個(gè)函數(shù)只能有一個(gè) return 語句
3、以下哪些情況會(huì)創(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ù)用于計(jì)算斐波那契數(shù)列的第 n 項(xiàng)。請?jiān)谙聞澗€處補(bǔ)全代碼。
print(fibonacci(6)) # 應(yīng)輸出82、以下函數(shù)使用遞歸計(jì)算 1 到 n 的和。請?jiān)谙聞澗€處補(bǔ)全代碼。
print(sum_to_n(5)) # 應(yīng)輸出153、以下函數(shù)用于判斷一個(gè)數(shù)是否為偶數(shù),使用 lambda 表達(dá)式實(shí)現(xiàn)。請?jiān)谙聞澗€處補(bǔ)全代碼。
print(is_even(5)) # 應(yīng)輸出False五、編程題(本大題共 3 小題)
1、字符串字符統(tǒng)計(jì)函數(shù)
編寫一個(gè)函數(shù) count_characters(s),統(tǒng)計(jì)傳入字符串中各類字符的數(shù)量。
要求:
(1)統(tǒng)計(jì)字符串中的數(shù)字、字母、空格、其他字符的數(shù)量
(2)返回一個(gè)包含四個(gè)計(jì)數(shù)的元組:(數(shù)字個(gè)數(shù), 字母個(gè)數(shù), 空格個(gè)數(shù), 其他字符個(gè)數(shù))
(3)使用 Python 字符串方法進(jìn)行字符類型判斷(如.isdigit(), .isalpha() 等)
編寫主程序測試該函數(shù)
(4)主要變量:s, digit_count, letter_count, space_count, other_count
2、素?cái)?shù)生成函數(shù)
編寫一個(gè)函數(shù) find_primes(N),找出小于正整數(shù) N 的所有素?cái)?shù)。
要求:
(1)使用 is_prime() 函數(shù)判斷每個(gè)數(shù)是否為素?cái)?shù)
(2)返回一個(gè)包含所有素?cái)?shù)的列表
(3)編寫主程序測試該函數(shù),輸出小于 100 的所有素?cái)?shù)及其個(gè)數(shù)
(4)使用循環(huán)遍歷 2 到 N-1 的所有整數(shù)
(5)主要變量:N, primes, num
3、最大公約數(shù)與最小公倍數(shù)
編寫兩個(gè)函數(shù):
gcd(a, b):計(jì)算兩個(gè)整數(shù)的最大公約數(shù)(使用輾轉(zhuǎn)相除法)
lcm(a, b):計(jì)算兩個(gè)整數(shù)的最小公倍數(shù)(利用最大公約數(shù))
要求:
(1)最大公約數(shù)函數(shù)使用歐幾里得算法(輾轉(zhuǎn)相除法)
(2)最小公倍數(shù)函數(shù)調(diào)用最大公約數(shù)函數(shù):lcm = a * b / gcd(a, b)
(3)編寫主程序測試這兩個(gè)函數(shù)
(4)主要變量:a, b, result_gcd, result_lcm
“點(diǎn)贊有美意,贊賞是鼓勵(lì)”
特別聲明:以上內(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.