PCAP练习题函数定义存疑:语法错误代码为何输出3?
PCAP练习题函数参数语法问题及答案推导
- 先明确:Python里绝对不允许用字面量整数1作为函数的形参名,比如
def f(1): ...这种写法会直接触发SyntaxError,你的判断完全正确,这个函数定义本身不符合语法规范。 - 结合官方给出的答案是3,基本可以确定题目存在笔误。最常见的可能性是把参数名写错了——比如把小写字母
l(视觉上和1很像)或者带默认值的参数x=1误写成了1。 - 按照答案反推,合理的代码逻辑应该是这样的:
比如用lambda函数的场景:
或者带默认参数的普通函数:f = lambda x: x + 2 print(f(1)) # 输出3
这两种情况的运行结果都和官方答案匹配,符合你说的lambda函数逻辑。def f(x=1): return x + 2 print(f()) # 输出3 - 也有可能是题目把“实参为1”的描述写错成了“形参为1”,毕竟实参传1是完全合法的,结合lambda的运算就能得到3。
内容的提问来源于stack exchange,提问作者Wildo_Baggins311
相关产品推荐
相关产品推荐

