考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

一段代码定义如下,下列调用结果正确的是?def bar(multiple): def foo(n): return multiple ** n return foo
A. bar(2)(3) == 8
B. bar(2)(3) == 6
C. bar(3)(2) == 8
D. bar(3)(2) == 6
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

我们来分析这段代码及其调用:

```python
def bar(multiple):
def foo(n):
return multiple ** n
return foo
```

1. **代码解释**:
- `bar` 是一个函数,它接受一个参数 `multiple`。
- 在 `bar` 内部定义了另一个函数 `foo`,它接受一个参数 `n`。
- `foo` 返回 `multiple` 的 `n` 次幂,即 `multiple ** n`。
- `bar` 返回 `foo` 函数。

2. **调用分析**:
- 调用 `bar(2)(3)`:首先执行 `bar(2)` 返回 `foo` 函数,此时 `multiple` 被捕获为 `2`。然后执行 `foo(3)`,即计算 `2 ** 3`,结果是 `8`。
- 调用 `bar(3)(2)`:首先执行 `bar(3)` 返回 `foo` 函数,此时 `multiple` 被捕获为 `3`。然后执行 `foo(2)`,即计算 `3 ** 2`,结果是 `9`。

3. **选项分析**:
- A: `bar(2)(3) == 8`:正确,因为 `2 ** 3` 等于 `8`。
- B: `bar(2)(3) == 6`:错误,因为 `2 ** 3` 并不等于 `6`。
- C: `bar(3)(2) == 8`:错误,因为 `3 ** 2` 等于 `9`,不是 `8`。
- D: `bar(3)(2) == 6`:错误,因为 `3 ** 2` 等于 `9`,不是 `6`。

**正确答案是:A: bar(2)(3) == 8**。