# 问答库

# 2.3.4 第三方库的安装与使用（问答库）

1. 【单选题·易】课程中“库”指的是（ ）
   A. 只能由 CPU 直接执行的机器指令集合
   B. 一个功能集合，通常是开发者预先编写的一组工具、函数或类，供其他开发者调用和使用
   C. 计算机的内存硬件
   D. 必须写在同一个 `.py` 文件里、不能单独安装的代码
   **答案：B**
   **解析：** 课程对库的定义是：一个功能集合，通常是开发者预先编写的一组工具、函数或类，供其他开发者调用和使用。库以模块或包的形式安装后，通过导入来使用，不是硬件，也不是机器指令。

2. 【单选题·易】用 pip 安装第三方库的命令格式是（ ）
   A. `python install 库名`
   B. `pip install 库名`
   C. `import 库名`
   D. `conda list 库名`
   **答案：B**
   **解析：** 课程给出的安装格式为 `pip install 库名` 和 `conda install 库名`。`import` 是安装之后的导入语句，不能代替安装；`conda list` 用于查看已安装的包。

3. 【判断题·易】库以模块或者包的形式安装到计算机上，用户采用导入模块或者包的方法就可以使用第三方库。
   **答案：√**
   **解析：** 这是课程对第三方库“安装—导入—使用”关系的原话。只安装不导入，程序里仍然无法直接调用该库中的函数或类。

4. 【判断题·易】jieba 是一个中文分词库，专门用于处理中文文本的分词任务。
   **答案：√**
   **解析：** 课程明确介绍 jieba 用于中文分词。词云库是 wordcloud，二者分工不同，中文词云常常先用 jieba 分词再交给 wordcloud。

5. 【多选题·中】关于 jieba 与 wordcloud，下列说法正确的有（ ）
   A. jieba 专门用于处理中文文本的分词任务
   B. wordcloud 用于生成词云图
   C. 词云图通过不同词语的大小、颜色来表示其在文本中出现的频率
   D. jieba 和 wordcloud 都属于 Python 标准库，安装 Python 后即可直接使用，无需安装
   **答案：ABC**
   **解析：** A、B、C 均来自课程对这两个第三方库的说明。D 错误：二者是第三方库，课程要求先 `pip install jieba`、`pip install wordcloud`，再导入使用。

6. 【单选题·中】课程中安装 jieba 的命令是（ ）
   A. `pip install jieba`
   B. `import jieba`
   C. `pip uninstall jieba`
   D. `python jieba`
   **答案：A**
   **解析：** 课程实例演示的安装命令就是 `pip install jieba`（以及 `pip install wordcloud`）。`import jieba` 是安装成功之后在程序中导入，不是安装命令。

7. 【多选题·中】下列哪些命令可以用来安装第三方库？（ ）
   A. `pip install 库名`
   B. `conda install 库名`
   C. `pip install jieba`
   D. `from 库名 import *`
   **答案：ABC**
   **解析：** 课程给出的安装格式是 `pip install 库名` 和 `conda install 库名`，jieba 的安装即 `pip install jieba`。D 是导入模块中所有内容的写法，属于“使用”，不是“安装”。

8. 【判断题·中】把连续的中文段落直接交给 wordcloud 的 `generate()`，一般就能按中文词语正确绘制词云。
   **答案：×**
   **解析：** wordcloud 默认按空白切分词语。英文单词之间已有空格，可直接 `generate`；中文必须先用 `jieba.lcut` 分词，再用 `' '.join(...)` 拼成空格分隔的字符串，并指定 `font_path`，否则切分错误或出现方框。

9. 【简答题·中】请写出安装 jieba、wordcloud 的命令，并说明安装后如何在程序中使用第三方库。
   **答案：** 安装命令：

```
pip install jieba
pip install wordcloud
```

也可以写成 `pip install 库名` 或 `conda install 库名`。安装后库以模块或包的形式存在，必须先用 `import` 导入，再调用其中的函数或类，例如 `import jieba`、`import wordcloud`。
   **解析：** 评分要点：①写出与课程一致的 pip 安装命令（写出 conda 格式也可给分）；②点明“先安装、再导入、再调用”；只写 `import` 或只写安装命令，给部分分。

10. 【单选题·难】中文词云在分词之后，需要把词语列表拼成空格分隔的字符串。运行下列程序，输出是什么？

```python
spacestring = ' '.join(['励学', '首在', '立志'])
print(spacestring)
```

    A. `励学首在立志`
    B. `励学 首在 立志`
    C. `['励学', '首在', '立志']`
    D. `励学,首在,立志`
    **答案：B**
    **解析：** `' '.join(列表)` 用空格连接各元素，得到 `'励学 首在 立志'`。这正是课程中 `spacestring = ' '.join(jieba.lcut(string))` 的作用：把分词结果变成 wordcloud 能按空白切分的文本。A 未加空格；C 是列表本身；D 误用了逗号。

11. 【简答题·难】对比英文词云与中文词云的绘制步骤，并写出两段语法正确、可直接运行结构完整的示例程序（英文程序保存为 `d:\ying.png`，中文程序保存为 `d:\zhong.png`）。说明中文为什么必须分词并指定字体。
    **答案：** 英文单词之间已有空格，安装并导入 wordcloud 后可直接 `generate` 整段英文；中文没有空格分词，必须先用 jieba 分词并用空格连接，同时用 `font_path` 指定中文字体，否则词语切不对或显示为方框。英文示例：

```python
import wordcloud
string = 'Python is a versatile, high-level programming language known for its readability and efficiency. It was first released by Guido van Rossum in 1991 and has since grown to become one of the most popular languages for web development, data analysis, artificial intelligence, and more.'
wc = wordcloud.WordCloud(background_color='white', width=800, height=600)
wc.generate(string)
wc.to_file(r'd:\ying.png')
```

中文示例：

```python
import wordcloud
import jieba
string = '励学首在立志，成为有知识、有教养、有思想、有才干的人；励学重在勤勉，勤于阅读，勤于观察，勤于思考，勤于总结；励学贵在坚持，知难而进，迎难而上，活到老、学到老。'
spacestring = ' '.join(jieba.lcut(string))
wc = wordcloud.WordCloud(font_path='simkai.ttf', background_color='white', width=800, height=600)
wc.generate(spacestring)
wc.to_file(r'd:\zhong.png')
```

运行前需已执行 `pip install jieba` 和 `pip install wordcloud`，且 `font_path` 指向本机实际存在的中文字体文件。
    **解析：** 评分要点：①对比“英文可直接 generate / 中文需分词+字体”；②英文代码含 `WordCloud(background_color='white', width=800, height=600)`、`generate`、`to_file(r'd:\ying.png')`；③中文代码含 `jieba.lcut`、空格 `join`、`font_path`、`to_file(r'd:\zhong.png')`；④路径使用原始字符串。漏写分词或字体不得满分。

12. 【单选题·难】课程用 `to_file(r'd:\ying.png')` 保存词云，路径前的 `r` 表示原始字符串。运行下列程序，输出结果是什么？

```python
print(len(r'd:\test.txt'))
print(len('d:\test.txt'))
```

    A. 两行都是 `11`
    B. 第一行 `11`，第二行 `10`
    C. 第一行 `10`，第二行 `11`
    D. 因路径非法而报错
    **答案：B**
    **解析：** `r'd:\test.txt'` 中每个字符都按字面计算，共 11 个字符（`d:\test.txt`）。普通字符串 `'d:\test.txt'` 里的 `\t` 是制表符，实际是 `d:` + 制表符 + `est.txt`，长度为 10。这与课程强调的“不加 r 会因转义而不能表示合法路径”一致。该程序只计算字符串长度，不访问磁盘，可直接运行。

文件位置：
- `知识库/第2章 Python程序设计基础/2.3.4-第三方库的安装与使用.md`
- `问答库/第2章 Python程序设计基础/2.3.4-第三方库的安装与使用.md`
