# Python 类型转换

> 原文： [https://www.programiz.com/python-programming/type-conversion-and-casting](https://www.programiz.com/python-programming/type-conversion-and-casting)

#### 在本文中，您将了解类型转换的用法。

在学习 Python 中的类型转换之前，您应该了解 [Python 数据类型](https://www.programiz.com/python-programming/variables-datatypes)。

* * *

## 类型转换

将一种数据类型（整数，字符串，浮点数等）的值转换为另一种数据类型的过程称为类型转换。 Python 有两种类型的类型转换。

1.  隐式类型转换
2.  显式类型转换

* * *

## 隐式类型转换

在隐式类型转换中，Python 自动将一种数据类型转换为另一种数据类型。 此过程不需要任何用户参与。

让我们看一个示例，其中 Python 促进将较低数据类型（整数）转换为较高数据类型（浮点数）以避免数据丢失。

### 示例 1：将整数转换为浮点型

```py
num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))

print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))
```

当我们运行上面的程序时，输出将是：

```py
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>

Value of num_new: 124.23
datatype of num_new: <class 'float'>
```

在上面的程序中

*   我们添加两个变量`num_int`和`num_flo`，将值存储在`num_new`中。
*   我们将分别查看所有三个对象的数据类型。
*   在输出中，我们可以看到`num_int`的数据类型是`integer`，而`num_flo`的数据类型是`float`。
*   另外，我们可以看到`num_new`具有`float`数据类型，因为 Python 总是将较小的数据类型转换为较大的数据类型，以避免数据丢失。

* * *

现在，让我们尝试添加一个字符串和一个整数，看看 Python 如何处理它。

### 示例 2：字符串（较高）数据类型和整数（较低）数据类型的加法

```py
num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))

print(num_int+num_str)
```

当我们运行程序时，输出将是：

```py
Data type of num_int: <class 'int'> 
Data type of num_str: <class 'str'> 

Traceback (most recent call last): 
  File "python", line 7, in <module> 
TypeError: unsupported operand type(s) for +: 'int' and 'str'
```

在上面的程序中，

*   我们添加了两个变量`num_int`和`num_str`。
*   从输出中可以看到`TypeError`。 在这种情况下，Python 无法使用隐式转换。
*   但是，Python 针对此类情况提供了一种解决方案，称为“显式转换”。

* * *

## 显式类型转换

在“显式类型转换”中，用户将对象的数据类型转换为所需的数据类型。 我们使用预定义的函数，例如`int()`，`float()`，`str()`等来执行显式类型转换。

这种转换类型也称为类型转换，因为用户强制转换（更改）对象的数据类型。

句法 ：

```py
<required_datatype>(expression)
```

可以通过将所需的数据类型函数分配给表达式来完成类型转换。

* * *

### 示例 3：使用显式转换将字符串和整数相加

```py
num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))

num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))

num_sum = num_int + num_str

print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))
```

当我们运行程序时，输出将是：

```py
Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>

Data type of num_str after Type Casting: <class 'int'>

Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>
```

在上面的程序中，

*   我们添加`num_str`和`num_int`变量。
*   我们使用`int()`函数将`num_str`从字符串（高位）转换为整数（低位）类型以执行加法。
*   将`num_str`转换为整数后，Python 可以将这两个变量相加。
*   我们将`num_sum`的值和数据类型设为整数。

* * *

## 要记住的要点

1.  类型转换是对象从一种数据类型到另一种数据类型的转换。
2.  隐式类型转换由 Python 解释器自动执行。
3.  Python 避免了隐式类型转换中的数据丢失。
4.  显式类型转换也称为类型转换，对象的数据类型由用户使用预定义的函数进行转换。
5.  在类型转换中，当我们将对象强制为特定数据类型时，可能会发生数据丢失。