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(变量, 基数) ,其中”variable”指一个字符串,”base”指定字符串所在的基数,当字符串是数据类型时。
示例
以下是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(character) ,并将其转换为对应的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()
使用此函数将整数转换为八进制。此函数的返回值仅接受整数数据类型作为参数,并且是一个八进制值。八进制函数语法如下: 八进制(参数)。
示例
以下是八进制数据类型的示例−
x = 38
y = oct(x)
print(y, "is of the type", type(y))
输出
以下是上述代码的输出结果:
0o46 is of the type <class 'str'>
元组(Tuple)
此函数用于创建一个由值组成的元组。通过使用元组,可以将多个项目存储在一个变量中。元组(tuple())方法的语法为 tuple(argument) ,元组的元素为(“one,” “two,” 和 “three”)。无法更改的、有序的值的集合被称为“元组”(即不可变)。
示例
下面是一个元组数据类型的示例。
x = 'TutorialsPoint'
print(tuple(x))
输出
以下是上述代码的输出:
('T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'P', 'o', 'i', 'n', 't')
Set()
将其转换为 set 后,此函数返回该类型。其语法为 set(iterable) ;不需要提供参数。集合是无序的。{Value 1, Value 2, Value 3, Value 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(参数)。
示例
以下是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(number),需要一个整数。而且,如果您传递一个超出范围的整数,该方法将返回一个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'>