# 问答库

# 2.1.5 内置函数（问答库）

1. 【单选题·易】下列关于 Python 内置函数的说法，正确的是：
   A. 使用前必须先 `import builtins`
   B. 解释器预先提供，无需导入模块即可直接调用
   C. 只能用于数学运算，不能做类型转换
   D. 全部都是用户自定义函数
   **答案：B**
   **解析：** 内置函数由解释器预先提供，可直接调用。A 不是本课程要求；C 忽略了类型转换、序列操作、输入输出等类别；D 把内置函数与自定义函数混淆。

2. 【单选题·易】执行 `int(3.45)` 的结果是：
   A. 3.45
   B. 3
   C. 4
   D. `'3.45'`
   **答案：B**
   **解析：** `int()` 可以把实数转换成整数，转换时截去小数部分，结果为 3，不是四舍五入。课程明确指出：将实数转换为整数会造成信息丢失。

3. 【多选题·中】根据课程内容，下列哪些属于数学运算类内置函数？
   A. `abs()`
   B. `round()`
   C. `max()` 和 `min()`
   D. `input()`
   **答案：ABC**
   **解析：** 课程将 `abs()`（取绝对值）、`round()`（四舍五入）、`max()` 和 `min()`（求最大值和最小值）归为数学运算函数。`input()` 属于输入输出函数。

4. 【判断题·易】`input()` 无论用户输入什么内容，返回值都是字符串；若需要整数或实数，要用 `int()` 或 `float()` 再转换。
   **答案：√**
   **解析：** 课程指出：程序运行时 `input()` 会暂停并等待用户输入，按下回车后以字符串形式返回。因此读取数值时必须再转换。

5. 【单选题·中】`str([2, 5, 7])` 的结果是：
   A. `[2, 5, 7]`（列表对象，不是字符串）
   B. `'2, 5, 7'`
   C. `'[2, 5, 7]'`
   D. `'257'`
   **答案：C**
   **解析：** `str()` 把组合数据类型等对象转换成字符串，得到的是带方括号和逗号空格的文本 `'[2, 5, 7]'`，类型是字符串，不是原来的列表。

6. 【判断题·易】`int()` 将实数转换为整数时会造成信息丢失。
   **答案：√**
   **解析：** 课程原文指出：`int(3.45)` 得到整数 3，将实数转换为整数会造成信息丢失。

7. 【单选题·中】运行下列程序，输出结果是什么？

```python
print(len('Thank you!'))
print(sum([3, 4, 5]))
print(max([2.1, 5.4, 3.8]))
print(round(3.25632, 2))
```

   A. `9` / `12` / `5.4` / `3.25`
   B. `10` / `12` / `5.4` / `3.26`
   C. `10` / `12` / `3.8` / `3.26`
   D. `11` / `345` / `2.1` / `3.3`
   **答案：B**
   **解析：** `'Thank you!'` 含空格和感叹号，共 10 个字符；`sum([3, 4, 5])` 为 12；`max([2.1, 5.4, 3.8])` 为 5.4；`round(3.25632, 2)` 四舍五入到 2 位小数得 3.26。A 漏计空格且 round 错；C 把 max 当成 min；D 多项均错。

8. 【多选题·中】关于 `print()` 的说法，正确的有：
   A. 可以接受多个参数，并把它们转换成字符串后输出
   B. 默认以空格符分隔输出项，以换行结束
   C. 可用 `sep` 指定分隔符，用 `end` 指定结束符
   D. 参数只能是字符串，不能是数字或列表
   **答案：ABC**
   **解析：** 课程指出 `print()` 可将任意数量、不同数据类型（字符串、数字、列表等）的对象输出；默认空格分隔、换行结束；`sep` 与 `end` 分别控制分隔符和结束符。D 与课程相反。

9. 【判断题·中】Python 强制规定变量名不能使用内置函数名；因此 `list = [3, 4, 5]` 这种写法在语法上是不允许的。
   **答案：×**
   **解析：** 课程说明：变量命名没有强制不能使用内置函数，但是此后不能再使用该内置函数。`list = [3, 4, 5]` 语法合法，只是随后 `list('abc')` 会报 `TypeError: 'list' object is not callable`。

10. 【简答题·中】简述 `range()` 的语法格式及三个参数的含义，并写出 `list(range(5))` 与 `list(range(0, 10, 2))` 的结果。
    **答案：** 语法为 `range(start, stop, step)`。`start` 可选，序列起始值，默认为 0；`stop` 必须给出，是结束值且不包含该值；`step` 可选，步长，默认为 1。`range()` 生成可迭代对象，常用 `list()` 转换后查看。`list(range(5))` 的结果是 `[0, 1, 2, 3, 4]`；`list(range(0, 10, 2))` 的结果是 `[0, 2, 4, 6, 8]`。
    **解析：** 评分要点：①写出三参数语法；②说明 start 默认 0、stop 必填且不含该值、step 默认 1；③两个列表结果正确，尤其不能把 5 或 10 写进结果。

11. 【简答题·难】请编写一个可直接运行的 Python 程序，至少使用三个内置函数，完成：把字符串 `"123"` 转为整数、把 `3.25632` 四舍五入到 2 位小数、求列表 `[3, 4, 5]` 的长度与求和，并打印这些结果。同时说明 `input()` 若要得到整数应如何写。
    **答案：** 示例程序：

```python
n = int("123")
r = round(3.25632, 2)
data = [3, 4, 5]
print(n)
print(r)
print(len(data))
print(sum(data))
```

运行后依次输出：

```
123
3.26
3
12
```

本程序使用了 `int()`、`round()`、`len()`、`sum()`、`print()`。若要从键盘得到整数，应写成 `int(input("Please enter in integer: "))`，因为 `input()` 的返回值始终是字符串。
    **解析：** 评分要点：①代码语法正确、可直接运行；②至少三个内置函数且结果与课程示例一致；③能说明 `input()` 需经 `int()` / `float()` 转换。

12. 【单选题·难】运行下列程序，输出结果是什么？

```python
print("Python", "is", "fun!", sep='---', end=' ')
print('I love it!')
```

   A. `Python is fun! I love it!`
   B. `Python---is---fun! I love it!`
   C. `Python---is---fun!`（换行）`I love it!`
   D. `Python---is---fun!I love it!`
   **答案：B**
   **解析：** 第一条 `print` 用 `sep='---'` 把三个单词连成 `Python---is---fun!`，又用 `end=' '` 使结尾为空格而不是换行；第二条 `print` 接着在同一行输出 `I love it!`。因此结果是 `Python---is---fun! I love it!`。A 未使用自定义分隔符；C 误以为仍换行；D 漏掉了 `end=' '` 产生的空格。
