文章目录
前言:基础数据类型
Python 中内置的基础数据类型包括以下几种:
- 数值类型
- 序列类型
- 映射类型
- 集合类型
- 空类型
使用 Python 内置的 type( ) 函数可以获取任何对象的数据类型。
一、数值类型
Python 中内置的数值类型可细分为以下几类:
- 整型
int
- 布尔类型
bool
- 实型
float
- 复数类型
complex
1.1 整型
整型代表整数数据,包括正整数、负整数和零。
整型数据通常以十进制表示,也可以用二进制、八进制或十六进制表示:
- 使用二进制时,在整数数值前面须加上 0B \ 0b (数字 0,字母 B \ b);
- 使用八进制时,在整数数值前面须加上 0O \ 0o (数字 0,字母 O \ o);
- 使用十六进制时,在整数数值前面须加上 0X \ 0x (数字 0,字母 X \ x)。
例如:二进制数 Ob1101
、八进制数 0o15
、十六进制数 0xD
都表示十进制数 13
。
1.2 布尔类型
布尔类型指只有两个取值 (True 和 False) 的数据类型,它代表真 (True) 和假 (False) 的逻辑值。
1.3 实型
实型,也称为浮点型,代表由整数和小数组成的数据。
实型数据除了可以一般写法表示外,也可以采用科学计数法表示,
例如:一般写法:0.002005
,科学计数法:2.005e-3
。
1.4 复数类型
复数类型代表由实部和虚部组成的数据。
注意: 复数的实部和虚部都属于实型数据。
在 Python 中,复数数据一般表示为:a + bj
,其中 a、b 分别为复数的实部和虚部。
二、序列类型
Python 中内置的序列类型可细分为以下几类:
- 字符串
str
- 列表
list
- 元组
tuple
2.1 字符串
在单引号(' '
)、双引号(" "
)、三对引号(''' '''
/ """ """
) 内的数据都属于字符串类型的数据,其中,单引号和双引号用于实现单行字符串,三对引号用于实现多行字符串。
注意: 在 Python 中,字符串数据无法被修改,若要修改字符串,只能将新的字符串赋值给变量。
2.1.1 转义字符
在字符串中,反斜杠 \
具有转义功能,当反斜杠后面出现规定的字符、符号或数字时,反斜杠便会同其后的字符、符号或数字一起组成一个具有特殊含义或作用的字符,将其称为转义字符。
如果不想字符串中出现的反斜杠执行转义,可以在字符串前面,即左引号前面使用字母 r
或 R
,使转义字符视为普通的字符,如:S = r"\t"
。
2.1.2 格式化字符串
当需要字符串中的特定内容会随着某些变量的值的变化而变化时,Python 允许用户利用格式化字符串的语法来解决该需求。
格式化字符串的一般语法是通过 f-string 以字面量的形式格式化字符串:在字符串前面使用字母 f
,然后再在字符串的内容中使用大括号 { } 来包裹指定的变量或表达式。代码运行时,会将大括号包裹的内容 (连同大括号一起) 替换为变量的值或表达式的结果。例如:
num = 1
S = f"num is {num}"
2.2 列表
列表是由方括号 [ ] 包裹起来的、由英文逗号隔开的、有序的元素序列。列表中的元素可以是不同类型的,特别地,列表中的元素也可以是另一个列表。当列表的方括号 [ ] 中没有元素时,即为空列表。
与字符串不同,列表中的元素是可变的,可以对列表进行增加元素、删除元素和修改元素等操作。
2.2.1 在列表中增加元素
- 利用 append( ) 方法可以在列表末尾添加新的指定元素;
- 利用 extend( ) 方法可以在列表末尾一次性添加多个指定元素;
- 利用 insert( ) 方法可以将指定元素添加到列表中的指定位置。
2.2.2 在列表中删除元素
- 最简单的办法是通过索引将要删除的位置赋值为空,即 [ ]。例如
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
num[3:6] = [ ]
print(num) # 结果为 [1, 2, 3, 7, 8, 9]
- 通过 del 语句来实现删除操作。例如
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del num[3:6]
print(num) # 结果为[1, 2, 3, 7, 8, 9]
- 利用 pop( ) 方法可以依索引删除列表中的一个元素;
- 利用 remove( ) 方法可以依值删除列表中的一个元素。
2.3 元组
元组是由小括号 ( ) 包裹起来的元素序列,是元素固定、不可变的列表。当元组的小括号 ( ) 中没有元素时,即为空元组。
特别地,当元组中只包含一个元素时,需要在元素后面添加英文逗号,否则括号会被当作运算符,例如:
tup1 = (50)
type(tup1)
# 结果为 <class 'int'>
tup2 = (50,)
type(tup2)
# 结果为 <class 'tuple'>
序列类型数据的共同特征和操作
序列类型数据中的每个元素都有对应的位置值,称之为索引,利用索引可以访问序列类型数据中指定位置的元素。
索引有两种类型:
- 索引的起始值为 0 0 0,表示从序列的头部开始,下一个元素的索引是上一个元素的索引 + 1 +1 +1,例如:
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[1]) # 结果为 2
- 索引的起始值为 − 1 -1 −1,表示从序列的尾部开始,上一个元素的索引是下一个元素的索引 − 1 -1 −1,例如:
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[-5]) # 结果为 5
此外,利用索引还可以进行切片操作,从而截取序列类型数据的一部分元素。
- 基本格式:
变量名[n : m]
表示对序列类型数据中索引在 n 与 m 之间的所有元素进行浅拷贝并返回拷贝结果。 - 切片原则:
遵循左闭右开的原则,截取的部分元素包括索引为 n 的元素,但不包括索引为 m 的元素。 - 其它语法格式:
- n 省略不写,即
变量名[ : m]
。
此时默认从第一个元素开始截取; - m 省略不写,即
变量名[n : ]
此时默认截取元素至最后一个; - 引入步长 u ,即
变量名[n : m : u]
此时每隔 ∣ u ∣ − 1 |u|-1 ∣u∣−1 个元素截取一个元素。当 u 为负数时,可以实现向反方向截取元素的操作。
- n 省略不写,即
三、映射类型(字典)
字典 (dict
) 是 Python 中的映射类型,是由大括号 { } 包裹起来的、由英文逗号隔开的、无序的键值对序列。
由于字典属于无序模型,因此字典不支持索引和切片。
键值对即 key: value
,其中 key
为键值,value
为实值。当字典的大括号 { } 中没有键值对时,即为空字典。
注意:
key
不可以重复出现,否则字典只会保留最后出现的一个;value
可以重复;key
可以是任意的数据类型,但不能出现可变的数据类型,以保证key
唯一。
(key
大多数情况都为字符串类型)value
可以是任意的数据类型,包括可变的数据类型。
3.1 在字典中查看实值
- 由于字典中每一个键值都与一个实值相关联,因此,可利用键值来访问字典中对应的实值,即以
变量名[key]
的方式访问对应的实值; - 利用 get( ) 方法可以访问指定键值在字典中对应的实值;
- 利用 setdefault( ) 方法可以访问已经存在于字典中的键值所对应的实值。
3.2 在字典中增加键值对
- 当直接对字典中不存在的键值赋予实值时,即
变量名[new_key] = new_value
,Python 会自动将键值对new_key: new_value
添加到字典中; - 利用 setdefault( ) 方法可以在字典中添加不存在于字典中的新的键值;
- 利用 update( ) 方法可以将另一个字典中的键值对添加到指定字典中。
3.3 在字典中删除键值对
- 利用 del 语句来实现删除操作,其语法格式为:
del 变量名[key]
; - 利用 clear( ) 方法可以删除字典内的所有键值对;
- 利用 popitem( ) 方法可以删除字典中的最后一个键值对;
- 利用 pop( ) 方法可以依键值来删除字典中的键值对。
四、集合类型
可变集合 (set
) 是 Python 中的集合类型,是由大括号 { } 包裹起来的、由英文逗号隔开的、无序的元素序列。
由于集合也属于无序模型,因此集合也不支持索引和切片。
集合和字典类似,但集合中的每一个元素都是一个值的形式,而字典中的每一个键值对都是两个值的形式。
注意: 集合中的元素可以是任意的数据类型,但不能出现可变的数据类型,且集合中不会出现重复的元素。
4.1 在集合中增加元素
- 利用 add( ) 方法可以在集合中添加指定元素;
- 利用 update( ) 方法可以在集合中一次性添加多个元素。
4.2 在集合中删除元素
- 利用 clear( ) 方法可以删除集合中的所有元素;
- 利用 remove( ) 方法或 discard( ) 方法可以依值删除集合中的元素;
- 利用 pop( ) 方法可以随机删除集合中的一个元素。
由于集合中的每个元素不会重复出现,因此,集合的主要作用便是去重和判重。
4.3 集合间的运算
- 并集运算
作用:用于合并两个集合中的所有元素,重复的元素只保留一个。
语法:set_value1 | set_value2
- 交集运算
作用:用于将两个集合中都包含的元素提取出来。
语法:set_value1 & set_value2
- 差集运算
作用:用于从第一个集合中删除那些也属于第二个集合的元素。
语法:set_value1 - set_value2
- 对称差集运算
作用:用于将两个集合中互不包含的元素提取出来。
语法:set_value1 ^ set_value2
五、空类型
空类型 (NoneType
) 是 Python 中的一个特殊的数据类型,用于表示空值或不存在的值,而 None
是 Python 中唯一的空类型对象。
空类型可以以 变量名 = None
的形式来表示没有确定数据类型的、没有被赋予任何具体数据的变量。