def。function、func、define 都不是 Python 定义函数的关键字。def sayHello():。return 语句。例如 sayHello() 只负责打印问候语。def add(a, b):
s = a + b
return s
A. 函数名为 add B. 形式参数是 a 和 b C. 调用 add(3, 4) 得到 7 D. 该函数没有函数体 答案:ABC 解析: 这是课程中的 add 示例:两个参数 a、b,函数体计算二者之和并 return。add(3, 4) 的结果为 7。D 错误,s = a + b 与 return s 就是函数体。
def sayHello: B. def sayHello(): C. function sayHello(): D. def sayHello[]: 答案:B 解析: 无参函数仍须保留圆括号。A 漏写括号,属于语法错误;C 误用其他语言的关键字;D 误用方括号。课程示例为 def sayHello():。return 的说法正确的有( ) A. return 用于返回函数的结果 B. 当函数执行到 return 语句时,函数会立即终止 C. 一个函数可以包含多个 return 语句 D. 多个 return 会按书写顺序全部执行一遍 答案:ABC 解析: return 既返回结果也结束函数执行,因此多个 return 用于不同条件分支,不会相互干扰,更不会全部执行。D 与“立即终止”矛盾。return 后面并以逗号分隔。课程中的 getMinMax(alist) 就同时返回最小值和最大值。def 函数名([形式参数列表]):
# 函数体
[return 返回值]
关键字是 def;函数名用于调用;形式参数列表在定义时声明,用来接收传入数据,可以省略(无参函数),但圆括号不能省略;函数体是缩进后的执行语句;return 返回值 可选,用于把结果交还给调用者,执行到 return 时函数立即结束。 解析: 评分要点:①写出与课程一致的基本形式;②说明 def、函数名、形参、函数体、return 的含义;③点明无参时圆括号仍不可省、return 可省略。只写示例函数而未给一般形式,给部分分。
def getMinMax(alist):
minValue = min(alist)
maxValue = max(alist)
return minValue, maxValue
print(getMinMax([3, 1, 4, 1, 5, 9]))
A. 1 B. 9 C. (1, 9) D. [1, 9] 答案:C 解析: min 得到 1,max 得到 9,return minValue, maxValue 一次返回两个值,调用结果是元组 (1, 9)。print 打印元组时带圆括号,元素之间有逗号和空格。A、B 只取了其中一个值;D 误写成列表。
return 而它们不会相互干扰?请写出课程中按从大到小返回两个参数的 sort 函数,并给出调用 sort(3, 8) 与 sort(9, 2) 的完整可运行程序及输出。 答案: return 不仅返回结果,还会立即结束函数。执行到某一个 return 后,后续分支中的 return 不会再执行,因此多个 return 互不干扰。完整程序:def sort(a, b):
if a >= b:
return a, b
else:
return b, a
print(sort(3, 8))
print(sort(9, 2))
输出为:
(8, 3)
(9, 2)
sort(3, 8) 走 else 分支,返回较大的 8 再返回 3;sort(9, 2) 满足 a >= b,返回 9, 2。 解析: 评分要点:①说明“执行到 return 立即终止”;②代码与课程 sort 逻辑一致且可运行;③两次调用结果分别为 (8, 3) 和 (9, 2),顺序为从大到小。写成从小到大或漏写 else 分支,不得满分。
def add(a, b):
s = a + b
return s
print('不会执行')
print(add(3, 4))
A. 7 和 不会执行 两行 B. 7 C. 不会执行 D. 因 return 后面还有语句而报错 答案:B 解析: add(3, 4) 中 s 为 7,执行 return s 后函数立即终止,其后的 print('不会执行') 不会运行,也不构成语法错误。外层 print 打印返回值 7。A 误以为 return 之后的语句仍会执行。