企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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. 在类型转换中,当我们将对象强制为特定数据类型时,可能会发生数据丢失。