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

备考刷题,请到

CDA认证小程序

以下代码的输出结果为()?def sum_b(a,*b): return a + b print(sum_b(1,2,3,4))
A. 2
B. (2,3,4,5)
C. 报错
D. 无输出
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

要分析这段代码,我们首先需要理解Python中函数参数的工作机制,尤其是`*args`的用法。

```python
def sum_b(a, *b):
return a + b

print(sum_b(1, 2, 3, 4))
```

### 代码分析:
1. **函数定义**:
- `def sum_b(a, *b)`: 这里定义了一个函数`sum_b`,它接受一个普通参数`a`和一个可变数量的参数`*b`。
- `*b`会将所有传入的多余参数打包成一个元组。

2. **函数调用**:
- `sum_b(1, 2, 3, 4)`: 在这里,`1`被赋值给参数`a`,而`2, 3, 4`会被收集到一个元组`b`中,即`b = (2, 3, 4)`。

3. **函数内部执行**:
- `return a + b`: 这里试图将整数`a`与元组`b`相加。
- 在Python中,直接相加一个整数和一个元组会导致类型错误,因为这两种类型不能直接相加。

### 预期结果:
- 由于尝试将一个整数与一个元组相加,这段代码会引发`TypeError`。因此,正确答案是 **C: 报错**。

依据以上分析,选项C是正确答案。