Python 数据类型

在 Python 中,所谓 “数据类型”,说白了就是下图中 “值” 的类型。Python 有以下 6 种标准的数据类型。

  • 数字(数值)。
  • 字符串。
  • 列表。
  • 元组。
  • 字典。
  • 集合。

Python 数据类型

提示: 由于 Python 中一切都是对象,因此这些数据类型实际上都是 “” ,而变量则是这些类的实例。

Python 数字类型

在 Python 中,数字是最基本的数据类型。所谓的数字,指的就是数学上的数字,比如 10、-10、3.14 等。在 Python 中,数字有 4 种不同的类型:整数(int)、浮点数(float)、复数(complex)和布尔值(bool)。

1. 整数类型(int)

整数类型也叫做 “整型”,它指的就是数学中的整数,包括正整数、负整数和 0,例如 666、-666 等。

示例 1:使用整型

n = 1001
print(n)
print(type(n))

运行结果如下。

1001
<class 'int'>

分析:

type() 函数用于判断变量的类型,我们在下一节 “Python 判断变量类型” 中会详细介绍。

2. 浮点数类型(float)

浮点数类型也叫做 “浮点型”,它由 “整数” 和 “小数” 两个部分组成,例如 66.66、-0.66 等。

示例 2:使用浮点型

n = 6.0
print(n)
print(type(n))

运行结果如下。

6.0
<class 'float'>

3. 复数类型(complex)

复数类型(complex)由 “实数” 和 “虚数” 两个部分组成,可以用 a+bj 或 complex(a, b) 表示。其中,复数的实部 a 和虚部 b 都是浮点数。

提示: 复数类型用得并不多,小伙伴们不需要过多深究。

示例 3:使用复数类型

n = 4 + 5j
print(n)
print(type(n))

运行结果如下。

(4+5j)
<class 'complex'>

4. 布尔型(bool)

整数、浮点数、复数这 3 种类型的值可以有无数多个,但是布尔类型的值只有 2 个:True 和 False。True 表示 “真”,False 表示 “假”。

可能你会觉得很奇怪:“为什么这种数据类型叫布尔值呢?” 实际上布尔是 bool 的音译,是以英国数学家、布尔代数的奠基人乔治·布尔(George Boole)来命名的。

布尔值最大的用途就是:用于选择结构的条件判断。如果你不了解选择结构,也不要着急,在后面章节中会详细介绍。

示例 4:使用布尔型

a = 10
b = 20

if a < b:
    print('a小于b')

运行结果如下。

a小于b

分析:

上面代码定义了两个数字类型的变量:a、b。然后在 if 语句中对 a 和 b 进行大小判断,如果 a 小于 b,则使用 print() 函数输出一个字符串:'a小于b'。其中,if 语句 是用来进行条件判断的,后面章节会介绍。

对于 Python 中的布尔值,小伙伴们还需要清楚以下 2 点。

  • Python 中的 True 和 False 这两个值的首字母必须大写,这一点跟其他编程语言不太一样。
  • Python 中的布尔类型归属于 “数字” 这个数据类型,这一点跟其他编程语言也是不一样的。其中 True 等价于 1,False 等价于 0。

Python 字符串类型

字符串,从名字上就很好理解,就是一串字符。在 Python 中,字符串都是用英文单引号或英文双引号(注意都是英文)括起来的。此外,字符串中的字符可以是 0 个(即空字符),也可以是 1 个或多个。

示例 5:使用字符串

a = 'Hello, world!'
b = "Hello, world!"

print(a)
print(b)

运行结果如下。

Hello, world!
Hello, world!

分析:

与数字一样,字符串也是值。在这个示例中,有一点小伙伴们可能感到好奇: “Python 在打印字符串时,有时候使用单引号,有时候使用双引号,两者有什么差别吗?”

其实使用单引号和双引号的结果是完全相同的。那么为什么 Python 同时支持单引号和双引号呢?这是因为在有些情况下,这可能会很有用,请看下面一个示例。

示例 6:单引号与双引号

print("Let's go!")
print('"Hello, world!"she said.')

运行结果如下。

Let's go!
"Hello, world!"she said.

分析:

在上述代码中,第一个字符串包含一个单引号,因此不能用单引号将整个字符串括起,否则 Python 解释器将报错。

print('Let's go!')

上面代码的运行结果如下。

(报错)SyntaxError: invalid syntax

这里有 3 个单引号,Python 会认为前两个单引号包含起来的是一个字符串,也就是 'Let' 是一个字符串。但是后面还有一个单引号,此时 Python 就懵了,因为它没有可以配对的另一个单引号,所以就直接报错了。

想要使得运行结果是:Let's go!,我们除了使用一对双引号包含起来,还可以使用 Python 转义字符 来实现。

提示: 对于刚接触 Python 的小伙伴,如果觉得下面介绍的列表、元组、字典等类型比较难理解,可以简单看一遍即可(不需要深究)。后面我们会花非常多的篇幅来详细介绍。

Python 列表类型

在 Python 中,列表用于保存一组数据,我们可以使用中括号 “[]” 来创建一个列表。

语法:

listname = [value1, value2, ... , valueN]

说明:

每个数据称之为列表的一个 “元素”,元素与元素之间使用英文逗号隔开。

示例 7:使用列表

# 定义列表
animals = ['ant', 'bee', 'cat', 'dog', 'ewe']

# 获取列表元素
print(animals[0])
print(animals[1])
print(animals[2])

运行结果如下。

ant
bee
cat

分析:

上面表示创建了一个名为 animals 的列表,该列表中有 5 个元素(都是字符串)。如果想要获取 animals 某一项的值,就可以使用下标的方式来获取。其中,animals[0] 表示获取第 1 项的值,也就是 'ant'。animals[1] 表示获取第 2 项的值,也就是 'bee'……依此类推。

Python 元组类型

在 Python 中,元组是一种跟列表非常相似的数据类型。其中,列表是使用中括号 “[]” 创建的,而元组是使用小括号 “()” 创建的。

语法:

tuplename = (value1, value2, …, valueN)

说明:

创建元组,用小括号括起来一堆数据就可以了,数据之间用英文逗号 “,” 隔开。元组跟列表非常相似,两者的很多操作都是相同的,但是它们之间也有着本质上的区别(也是两者唯一的区别):元组的元素不能修改,而列表的元素可以修改。或者,你可以把元组看成是一种特殊的列表。

示例 8:使用元组

lst = [1, 2, 3]
tup = (1, 2, 3)

print(type(lst))
print(type(tup))

运行结果如下。

<class 'list'>
<class 'tuple'>

分析:

从结果可以看出,列表的类型为 “list”,而元组的类型为 “tuple”,两者是完全不同的数据类型。

Python 字典类型

在 Python 中,我们可以使用大括号 “{}” 来创建一个字典

语法:

dictname = { key1: value1, key2: value2, ... , keyN: valueN }

说明:

字典是由多个 “键值对” 组成的。键与值之间用英文冒号 “:” 分开,然后键值对之间用英文逗号 “,” 隔开。

键值对是两个相关的值,你可以使用键来访问对应的值,与键相关联的值可以是数字、字符串、列表乃至字典。事实上,你可以将任何 Python 对象作为字典中的值。

示例 9:使用字典

# 创建字典
users = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003} 

# 获取某个键的值
result = users['Lucy']

# 打印结果
print(result)

运行结果如下。

1002

分析:

上面创建了一个名为 users 的字典,该字典包含了 3 个键值对。users['Lucy'] 表示获取 users 中 'Lucy' 这个键对应的值。

Python 集合类型

在 Python 中,我们也是使用大括号 “{}” 来创建一个集合。与字典不一样,字典的元素是 “键值对”,而集合的元素是 “值”。

语法:

setname = { value1, value2, ... , valueN }

说明:

集合是由多个值组成的,两个值之间用英文逗号(,)隔开。对于集合,小伙伴们需要注意以下 3 点。

  • 集合不会出现相同的值,如果有相同的值,则只会保留一个,这个跟数学中的集合一样。
  • 序列(列表、元组、字符串)是有序的,而字典跟集合是无序的。
  • 序列是有序的,因此可以通过下标的方式来获取某一个元素,但是字典和集合都不可以。

示例 10:使用集合

items = { 3, 1, 2, 2, 5, 4, 4 }
print(items)

运行结果如下。

{ 1, 2, 3, 4, 5 }

分析:

在集合中,如果有相同的值,则只会保留一个。需要特别注意的是,虽然这里的数字看起来是按顺序输出的,但这只是底层计算的一个巧合。集合是完全无序的,每次输出的顺序都可能不同,因此千万不要依赖集合来排序数据。

上一篇: Python 常量

下一篇: Python 判断变量类型

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号