Skip to content

Python 数据类型

Python 是一种面向对象的编程语言。Python 中的每个变量都是某个类的实例。Python 预定义了许多数据类型。我们也可以创建自己的类来定义自定义数据类型。

Python中常用的数据类型有哪些?

Python 中一些常用的数据类型包括:

  • 数字——整数、浮点数、复数
  • 序列——字符串、列表、元组、集合
  • 地图 – 词典

Python 数据类型检查

我们可以使用type()函数来检查变量的数据类型。

python
i = 10
 
print(type(i))

Python 数据类型

让我们来看一些Python数据类型的例子。

Python 字符串数据类型

Python 字符串是 ' str '类的实例。字符串是 Unicode 字符序列。Python 字符串是不可变的。我们可以使用单引号 (') 或双引号 (") 来定义字符串。

字符串是Python中最常用的数据类型。Python支持对字符串对象进行各种操作,例如获取长度、格式化、分割、连接、切片等等。

python
s = "abc"
print(type(s))
 
s1 = 'hello'
print(type(s1))
 
print(s[1:2])
print(len(s))
print(s.split('b'))

输出:

shell
<class 'str'>
<class 'str'>
b
3
['a', 'c']

Python 数字数据类型

数字类别中有三种数据类型:int、float 和 complex。Python 2 中还有一种名为“long”的数据类型,但它在 Python 3 中已被弃用。

python
i = 10
print(type(i))
 
i = 1.23
print(type(i))
 
i = 1 + 2j
print(type(i))

Python 数字数据类型

Python 元组数据类型

在 Python 中,元组是一个有序的元素序列。元组是不可变的,也就是说,一旦定义了,我们就无法更改它的值。

我们可以使用圆括号定义元组,其中元素之间用逗号分隔。元组可以包含任意数量的元素,并且元素可以是任何类型。

python
t = (1, 2, 3)
print(type(t))
 
t = ('a', 1, [1, 2])
print(type(t))

输出:

shell
<class 'tuple'>
<class 'tuple'>

Python 列表数据类型

列表与元组几乎相同,区别在于它是可变的,元素的顺序会被保留。

Python 列表使用方括号定义,元素之间用逗号分隔。

python
my_list = [1, 2, 3]
print(type(my_list))
 
my_list = ['a', 1, [1, 2]]
print(type(my_list))

输出:

shell
<class 'list'>
<class 'list'>

Python 集合数据类型

Python 的 Set 是一个无序的元素集合。Set 中不能有重复的值,元素的顺序也不被保留。

集合用花括号定义,元素之间用逗号分隔。Python 的集合使用哈希来存储元素。因此,hash()集合中的元素必须是可哈希的,也就是说,哈希函数必须能够对其进行操作。由于列表是不可哈希的,所以我们不能将列表对象存储在集合中。

python
my_set = {1, 2, 3, 1}
print(type(my_set))
print(my_set)
 
my_set = {'a', 1, 'a'}
print(type(my_set))
print(my_set)

输出:

shell
<class 'set'>
{1, 2, 3}
<class 'set'>
{1, 'a'}

让我们看看当我们尝试将 List 作为 Set 元素时会发生什么。

shell
>>> my_set = {1, [1]}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>>

Python字典数据类型

Python 字典是一个无序的键值对集合。它使用花括号定义,元素之间用逗号分隔。键和值可以是任何类型。键值对之间用冒号连接(key: value)。

Python 字典对象属于 'dict' 类型。它们非常适合存储大量值,并且需要快速检索。

shell
my_dict = {"1": "Apple", "2": "Banana"}
print(type(my_dict))
 
my_dict = {1: 1, 2: 'b', 3: [1, 2]}
print(type(my_dict))

Python 字典使用哈希算法对键进行哈希处理来存储和检索元素,因此键对象必须支持 hash() 函数。这就是为什么我们不能使用列表作为字典元素的键。

shell
>>> my_dict = {[1]: "a"}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>>

在 Python 中定义自定义数据类型

我们可以通过在 Python 中创建类来定义自定义数据类型。

python
class Data:
    pass
 
d = Data()
 
print(type(d))

Python 自定义数据类型

Python 函数有数据类型吗?

到目前为止,我们已经了解到数据类型与Python变量相关联。但是,Python函数也有数据类型吗?

我们用一个简单的程序来验证一下。

python
def foo():
    pass
 
print(type(foo))

输出:

shell
<class 'function'>

所以 Python 函数也有一种数据类型——function。它们是 function 类的实例。

Python类方法是否有数据类型?

我们来看看Python类的方法是否也有数据类型。

python
class Data:
 
    def foo(self):
        pass
 
d = Data()
print(type(d.foo))

输出:

shell
<class 'method'>

所以,Python 类方法的数据类型为“method”。它们是“method”类的实例。

总结

Python 是一种面向对象的编程语言。在 Python 中,一切事物都是某个类的对象,甚至包括函数和类方法。我们可以使用内置的 type() 函数来确定 Python 中实体的数据类型。

接下来是什么?

参考