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”最初是 int 类型,但变量“b”是 float 类型。在执行加法运算并将结果存储到变量“a”中后,“a”的数据类型会自动更改为 float 类型。这就是 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 提供了许多内置函数用于显式类型转换。

注意 - 通过显式类型转换将给定值强制转换为较小的数据类型可能会导致数据丢失。例如,将 float 值转换为 int 时,输出结果会舍入小数位。

语法

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

(required data type)(expression)

示例

以下是一个显式类型转换的示例 -

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

输出

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

因此,为了完成此过程,我们需要使用显式类型转换。“b”转换为 int 类型后,“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(变量,基数),其中“变量”指的是字符串,“基数”指定当数据类型为字符串时字符串所在的基数。

示例

以下是一个 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 时,只能声明一个空浮点数数据类型变量。

示例

以下是一个 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 (参数)。

示例

以下是一个 hex 数据类型的示例 -

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

输出

以下是上述代码的输出 -

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

Oct()

使用此函数将整数转换为八进制。此函数仅接受整数数据类型作为参数,并返回八进制值。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”)。元组是指一组不可更改的有序值(即不可变的)。

示例

以下是一个 tuple 数据类型的示例

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,依此类推} 表示一个集合。

示例

以下是一个 set 数据类型的示例

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

输出

以下是上述代码的输出 -

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

List()

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

示例

以下是一个 list 数据类型的示例 -

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

输出

以下是上述代码的输出

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

Str()

它用于将整数转换为字符串。当将不同数据类型的值与字符串数据类型的值组合时,通常使用此函数。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(参数),其中参数是可选参数。如果未提供参数,它将创建一个空字典对象;如果提供了参数,它将参数转换为字典格式。

示例

以下是一个 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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告