Python 中有哪些不同的数据转换方法?


类型转换是指将 Python 数据类型转换为另一种数据类型的过程。Python 中类型转换的基本类别包括隐式类型转换和显式类型转换。

本文将涵盖以下主题:

  • Python 中的**隐式类型转换**是由 Python 解释器自动执行的。

  • 在 Python 中,**显式类型转换**必须由程序员直接执行。

让我们深入研究这两种方法,并结合一些示例进行讲解。

隐式类型转换

隐式类型转换是指 Python 解释器在没有程序员干预的情况下自动更改对象数据类型。为了避免运行时数据丢失,较小的数据类型会被转换为较大的数据类型。

我们不需要在代码中显式使用任何函数,因为转换会自动发生。

**注意** - 解释器将高级语言转换为计算机可理解的语言。解释器逐行读取代码,然后直接执行。

示例

以下是隐式类型转换的示例

a = 13 print("The Data Type of Variable a is:",type(a)) b = 6.9 print("The Data Type of Variable b is:",type(b)) a = a - b print("\nThe value of a now is:",a) print("*Updated Data Type of the Variable a is:",type(a))

输出

从上面的示例可以看出,变量“a”最初是整数类型,但变量“b”是浮点数类型。在求和过程之后并将结果存储到变量“a”中, “a”的数据类型会自动更改为浮点数类型。这就是 Python 编程语言中的隐式类型转换。

The Data Type of Variable a is: <class 'int'>
The Data Type of Variable b is: <class 'float'>

The value of a now is: 6.1
*Updated Data Type of the Variable a is: <class 'float'>

**注意** - `type()` 方法返回输入参数的类类型。因此,`type(9)` 返回类“int”的对象,而 `type("9")` 返回类“string”的对象。

显式类型转换

用户将对象的类型更改为显式类型转换所需的数据类型。显式类型转换使用预定义函数(如 `int()`、`float()` 和 `str()`)来完成。

此转换过程也称为**类型强制转换**,因为它涉及用户更改对象的类型。

当程序员明确且精确地指定程序时,就会进行显式类型转换。Python 提供了一些内置函数用于显式类型转换。

**注意** - 通过显式类型转换将给定值强制转换为较小的数据类型可能会导致数据丢失。例如,将浮点数转换为整数时,会对输出中的小数位进行四舍五入。

语法

以下是显式类型转换的语法:

(required data type)(expression)

示例

以下是显式类型转换的示例:

a = 47 b = "51" result1 = a + b b = int(b) result2 = a + b print(result2)

输出

变量“a”的数据类型是数字,“b”是字符串。如果将这两个值相加并将结果存储到 `result1` 变量中,则会发生 `TypeError`,如输出所示。

因此,为了完成此过程,我们必须使用显式类型转换。“b”转换为整数后,“a”和“b”相加。输出显示 400,该值存储在 `result2` 变量中。

Traceback (most recent call last):
   File "main.py", line 3, in <module>
      result1 = a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'

让我们用一个简单的示例来说明 Python 提供的每种显式转换函数类型。

`int()`

此函数可以将任何数据类型转换为整数数据类型。`int()` 函数需要 2 个参数,其语法为 `int(变量, 基数)`,其中“变量”指的是字符串,“基数”指定字符串所在的基数(当数据类型为字符串时)。

示例

以下是整数数据类型的示例:

a = "58" print("Before conversion the data type of variable a is:",type(a)) number = int(a) print("\nAfter conversion the data type of variable a is:",type(number))

输出

以下是上述代码的输出:

Before conversion the data type of variable a is: <class 'str'>

After conversion the data type of variable a is: <class 'int'>

`float()`

此函数可以将任何数据类型转换为浮点类型。`float()` 的语法为 `float(参数)`,其中参数是可选参数。使用 `float()` 函数且不带参数时,只能声明一个空浮点数类型变量。

示例

以下是浮点数类型的示例:

a = "84" print("Before conversion the data type of variable a is : %s and a value : %s "%(type(a),a)) number = float(a) print("\nAfter conversion the data type of variable a is: %s and number value : %s "%(type(number),number))

输出

以下是上述代码的输出:

Before conversion the data type of variable a is : <class 'str'> and a value : 84 

After conversion the data type of variable a is: <class 'float'> and number value : 84.0 

`ord()`

使用此函数,可以将字符转换为整数。此函数接受单个字符参数 `ord(字符)`,并将其转换为其对应的 Unicode 代码值。可以使用此函数来确定字符串是否包含特殊字符(如表情符号)。此函数只能使用一个字符。

示例

以下是 `ord()` 数据类型的示例:

char = "H" unicode_character = ord(char) print("\nThe Unicode of the character %s is %s "%(char,unicode_character))

输出

以下是上述代码的输出

The Unicode of the character H is 72 

`hex()`

使用此函数将数字转换为十六进制。此函数接受单个整数或浮点数参数,其返回值为十六进制。`hex()` 函数的语法为 `hex(参数)`。

示例

以下是十六进制数据类型的示例:

x = 87 y = hex(x) print(y, "is of the type", type(y))

输出

以下是上述代码的输出:

0x57 is of the type <class 'str'>

`oct()`

使用此函数将整数转换为八进制。此函数仅接受整数数据类型作为参数,其返回值为八进制值。`oct()` 函数的语法为 `oct(参数)`。

示例

以下是八进制数据类型的示例:

x = 38 y = oct(x) print(y, "is of the type", type(y))

输出

以下是上述代码的输出:

0o46 is of the type <class 'str'>

`tuple()`

此函数用于根据值创建元组。元组可以将多个项目存储在一个变量中。`tuple()` 方法的语法为 `tuple(参数)`,元组的元素为 (“one”,“two”,“three”)。元组是一组不可变的有序值(即不可变)。

示例

以下是元组数据类型的示例

x = 'TutorialsPoint' print(tuple(x))

输出

以下是上述代码的输出:

('T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'P', 'o', 'i', 'n', 't')

`set()`

转换为集合后,此函数返回类型。其语法为 `set(可迭代对象)`;不需要提供参数。集合是无序的。{值 1,值 2,值 3,值 4,等等} 表示一个集合。

示例

以下是集合数据类型的示例

x = 'TutorialsPoint' print(set(x))

输出

以下是上述代码的输出:

{'r', 'a', 'i', 'o', 's', 'n', 't', 'u', 'T', 'l', 'P'}

`list()`

此函数通过将任何数据类型转换为列表类型来创建列表对象。列表是可变且有序的。`list()` 的语法为 `list(参数)`,列表用 [‘one’,2,‘three’] 表示。参数可以是序列(字符串、元组)、集合(集合、字典)或迭代器对象,它是可选的。

示例

以下是列表数据类型的示例:

x = 'TutorialsPoint' print(list(x))

输出

以下是上述代码的输出

['T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'P', 'o', 'i', 'n', 't']

`str()`

它用于将整数转换为字符串。当将不同数据类型的数值与字符串数据类型的数值组合时,通常使用此函数。`str()` 函数的语法为 `str(参数)`。

示例

以下是字符串数据类型的示例:

x = 39 y = 489.28 z = complex(39,4) print(str(x)) print(str(y)) print(str(z))

输出

以下是上述代码的输出:

39
489.28
(39+4j)

`dict()`

此方法使用有序的 (键,值) 值元组创建字典。字典由构造函数 `dict()` 创建。这意味着如果未提供参数,则创建空字典。其语法为 `dict(参数)`,其中参数是可选参数。如果未提供参数,则创建空字典对象;如果提供了参数,则将其转换为字典格式。

示例

以下是字典数据类型的示例:

x = (('s', 6), ('a', 3), ('r', 5), ('i', 8), ('k', 1)) print(dict(x))

输出

以下是上述代码的输出:

{'s': 6, 'a': 3, 'r': 5, 'i': 8, 'k': 1}

`chr()`

此函数将数字转换为其 ASCII 字符等效项。`chr()` 函数的语法为 `chr(数字)`,需要一个整数。此外,如果传递超出范围的整数,则该方法将返回 `ValueError`。

示例

以下是 `chr()` 数据类型的示例:

x = 437 y = 57 print(chr(x), "type is", type(chr(x))) print(chr(y), "type is", type(chr(y)))

输出

以下是上述代码的输出:

Ƶ type is <class 'str'>
9 type is <class 'str'>

更新于:2022年11月14日

660 次浏览

启动您的 职业生涯

完成课程获得认证

开始
广告