# G1-10 课后练习 —— 类型转换
> **GESP等级：一级 | 考级考点：GESP Python 一级**

**姓名：__________  日期：__________**

---

## 一、选择题（每题5分，共30分）

**1. 执行 `type(10 / 2)` 的结果是什么？**
A. `<class 'int'>`
B. `<class 'float'>`
C. `<class 'str'>`
D. `<class 'bool'>`

**2. `int(4.9)` 的值是多少？**
A. 4
B. 5
C. 4.9
D. 报错

**3. 下面哪段代码会报错？**
A. `int("8")`
B. `float("8.5")`
C. `int("8.5")`
D. `str(8.5)`

**4. `str(100) + "200"` 的结果是什么？**
A. 300
B. "100200"
C. "300"
D. 报错

**5. `bool([])` 的结果是什么？**
A. True
B. False
C. 报错
D. None

**6. `print(type("360 / 6"))` 的输出是什么？**
A. `<class 'int'>`
B. `<class 'float'>`
C. `<class 'str'>`
D. `<class 'bool'>`

---

## 二、填空题（每空4分，共40分）

请写出下面代码的运行结果：

**1.**
```python
print(int(2.7))
```
结果：\_\_\_\_\_\_\_\_\_\_

**2.**
```python
print(float("10"))
```
结果：\_\_\_\_\_\_\_\_\_\_

**3.**
```python
print(str(3.14) + "是圆周率")
```
结果：\_\_\_\_\_\_\_\_\_\_

**4.**
```python
print(int("6") + int("4"))
```
结果：\_\_\_\_\_\_\_\_\_\_

**5.**
```python
print(type(True))
```
结果：\_\_\_\_\_\_\_\_\_\_

**6.**
```python
print(bool(0))
```
结果：\_\_\_\_\_\_\_\_\_\_

**7.**
```python
print(type(100 // 3))
```
结果：\_\_\_\_\_\_\_\_\_\_

**8.**
```python
print(str(2 + 3) + "5")
```
结果：\_\_\_\_\_\_\_\_\_\_

**9.**
```python
print(bool("False"))
```
结果：\_\_\_\_\_\_\_\_\_\_

**10.**
```python
x = "123"
y = int(x) + 1
print(y)
```
结果：\_\_\_\_\_\_\_\_\_\_

---

## 三、程序改错题（每题5分，共15分）

找出以下代码中的错误，并写出正确的代码。

**1. 小明想计算 "5" + 3 的结果：**
```python
# 错误代码：
result = "5" + 3
print(result)
```
错误原因：\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
正确代码：
```python

```

**2. 小红想输出 3.14 是 float 类型：**
```python
# 错误代码：
num = "3.14"
print(type(num))
```
小红希望输出 `<class 'float'>`，但实际输出的是 \_\_\_\_\_\_\_\_\_\_\_
正确代码：
```python

```

**3. 小刚想用 int() 把 "3.8" 转换成整数：**
```python
# 错误代码：
num = int("3.8")
print(num)
```
错误原因：\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
正确代码：
```python

```

---

## 四、编程题（15分）

编写一个程序，完成以下功能：

1. 定义变量 `a = "25"` 和 `b = "17"`
2. 将 a 和 b 转换成整数并求和，输出：`"25 + 17 = 42"`（结果用实际计算值显示）
3. 将 a 和 b 拼接成字符串，输出：`"25" + "17" = "2517"`
4. 用 `type()` 检查 25 / 5 的类型并输出

**参考输出：**
```
25 + 17 = 42
"25" + "17" = "2517"
25 / 5 的类型是：<class 'float'>
```

你的代码：
```python

```

---

## 五、拓展思考题（附加题，10分）

观察并解释以下现象：

```python
print(3 * "abc")        # 输出：abcabcabc
print("abc" + "def")    # 输出：abcdef
print(True + True)      # 输出：2
print("3" * "3")        # 报错
```

**问题：**
1. 为什么 `3 * "abc"` 不会报错，而 `"3" * "3"` 会报错？
2. `True + True` 为什么等于 2？

你的回答：
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

---

---

**自我评价：** □ 全都会了  □ 大部分会了  □ 还要再练练