基本数据类型¶
在内存存储的数据可以有多种类型。例如,一个人的姓名可以使用字符型存储、年龄可以使用数值型存储、而婚否可以使用布尔类型存储。这些都是Python提供的基本数据类型。
数值¶
在Python中,提供了数值类型用于保存数值,并且它们是**不可变的数据类型**。如果修改数值类型变量的值,那么会先把该值存储到内存中,然后修改变量使其指向新的内存地址。
-
整型:int
-
浮点数:float
-
复数:complex
字符串(str)¶
字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。在Python中,字符串属于**不可变序列**,通常使用**单引号“' '”、双引号“" "”、三引号“''' '''”或“""" """”**括起来,开始和结尾使用的引号形式必须一致,当需要表示复杂的字符串时,还可以进行引号的嵌套。字符串的每一个字符都是一个长度为1的字符串。 这三种引号形式在语义上没有差别,只是在形式上有些差别。其中单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。 Python中的字符串还支持转义字符。所谓转义字符是指使用反斜杠“\”对一些特殊字符进行转义。 在字符串界定符的前面加上字母r或R,那么该字符串将原样输出,其中的转义字符将不进行转义。 常用的转义字符及其说明如下:
school = "南京医科大学"
school = '南京医科大学'
lines = """碧云天, 黄叶地,秋色连波, 波上寒烟翠。
山阴斜阳天接水,芳草无情,更在斜阳外。
"""
lines = "碧云天, 黄叶地,秋色连波, 波上寒烟翠。\n山阴斜阳天接水,芳草无情,更在斜阳外。"
lines = r"碧云天, 黄叶地,秋色连波, 波上寒烟翠。\n山阴斜阳天接水,芳草无情,更在斜阳外。"
lines = "碧云天, 黄叶地,秋色连波, 波上寒烟翠。\\n山阴斜阳天接水,芳草无情,更在斜阳外。" # 与上一个等价
布尔值(bool)¶
布尔类型主要用来表示真或假的值。在Python中,标识符True和False被解释为布尔值。布尔类型的值可以进行数值运算,但是不建议对布尔类型的值进行数值运算。 在Python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假,其他对象在if或while语句中都表现为真:
-
False或None。
-
数值中的零,包括0、0.0、虚数0j。
-
空序列,包括字符串、空元组、空列表、空字典。
-
自定义对象的实例,该对象的bool方法返回False,或者**len**方法返回0
序列¶
此类对象表示以非负整数作为索引的有限有序集
-
可变序列 在被创建后仍可被改变
-
列表(list) 列表中的元素可以是任意 Python 对象。列表由用**方括号**括起并由**逗号分隔**的多个表达式构成。(注意创建长度为 0 或 1 的列表无需使用特殊规则。
```Python a = [] # 这是一个空列表 a = [1] # 这是一个长度为1含有1个元素的列表 a = [1, 2, 3] # 这是一个长度为3含有3个元素的列表
2. 字节数组 9. **不可变序列** 对象一旦创建就不能再改变。(如果对象包含对其他对象的引用,其中的可变对象就是可以改变的;但是,一个不可变对象所直接引用的对象集是不能改变的。) 1. **字符串(str)** 2. **元组(tuple)** 一个元组中的元素可以是任意 Python 对象。包含两个或以上条目的元组由**逗号分隔**的表达式构成。**只有一个条目的元组 ('单项元组') 可通过在表达式后加一个逗号来构成 (一个表达式本身不能创建为元组,因为圆括号要用来设置表达式分组)**。一个空元组可通过一对内容为空的**圆括号**创建。 ```Python a = () # 这是一个空元组 a = (1, ) # 这是一个长度为1含有1个元素的元组,注意",",容易被忽略 a = (1) # 这是数值类型,不是元组,()仅起分隔作用 a = (1, 2, 3) # 这是一个长度为3含有3个元素的元组 -
字节串
集合(set)¶
此类对象表示由**不重复**且**不可变对象组成**的**无序**且**有限**的集合,因此它们不能通过下标来索引。集合常见的用处是快速成员检测,去除序列中的重复项,以及进行交、并、差和对称差等数学运算。
- 可变集合 创建之后可以通过方法进行修改
```Python a = {1} # 这是一个长度为1含有3个元素的可变集合 a = {1, 2, 3} # 这是一个长度为3含有3个元素的可变集合
11. 冻结(不可变)集合
****创建之后不可以通过方法进行修改
# 映射(字典dict)
此类对象表示由任意索引集合所索引的对象(**键值对**)的集合,属于**可变类型**,通过{}括起来,但其中**键必须是不可变类型**,且**键不能重复**。字典会保留插入顺序,这意味着键将以它们被添加的顺序在字典中依次产生。 替换某个现有的键不会改变其顺序,但是移除某个键再重新插入则会将其添加到末尾而不会保留其原有位置。
```Python
a = {} # 这是空字典
a = {1: "a"} # 这是一个长度为1含有1个键值对的字典
a = {[1]: "a"} # 这是不合法的,将报错,因列表属于可变类型,不能作为键
a = {"a": 1, "b": 2, "c": 3} # 这是一个长度为3含有3个键值对的字典

