Python基础——数据类型
2.0 type
检查值的类型
2.1 数值
2.1.1 整数
所有整数都是 int 类型
大小无限制
下划线自动忽略

十进制数字不能以0开头
- 因为要输入其他进制的整数
| 进制 | 表示 |
|---|---|
| 二进制 | 0b |
| 八进制 | 0o |
| 十六进制 | 0x |
打印时一定以十进制输出
2.1.2 浮点数
所有小数都是 float 类型

浮点数运算结果不精确
2.1.3 复数
2.2 布尔类型
2.2.1 bool
逻辑判断

2.2.2 None
表示 NULL

2.3 字符串
用于表示文本信息

2.3.1 基本语法
用 '' 或 "" 标记
'''字符串''' 字符串中支持换行

当然,ptint() 加上参数 end='' 表示当前内容输出结束后不换行


2.3.2 转义字符
| 符号 | 含义 |
|---|---|
| \’ | ‘ |
| \” | “ |
| \t | 制表符 |
| \n | 换行符 |
2.3.3 字符串打印
以参数形式打印
print("strA=",strA)
占位符:在创建字符串时,可以在字符串中指定占位符
| 占位符 | 含义 |
|---|---|
| %s | 字符串 |
| %d | 整数 |
| %f | 浮点数 |
1 | # 单个占位符 |

2.3.4 格式化字符串
字符串中可插入变量
在字符串前添加 f 来创建一个格式化字符串
1 | c = f'hello' |

在格式化字符串中可以嵌入变量

2.3.5 字符串复制
将字符串与数字相乘
1 | a = 'abc' |

2.3.6 字符串连接
1 | strA+strB |
- 字符串不能和其他类型数据做加法运算
1 | name = "Amos" |

- 若要多中数据类型同时打印,需要进行数据类型转换
2.4 对象
- 一切皆对象
- 程序运行中,所有数据都是存储在内存中,然后运行
- 对象实质上是一个容器,是内存中存储指定数据的区域
2.4.1 对象的结构
a. id
用于标识对象的唯一性
id由解析器生成可通过
id()检测对象的id
在 CPython 中,id 是对象的内存地址
b. type
Python是一门 强类型语言 ,变量一旦创建,则不能修改
c. value
2.4.2 变量和对象
Python中变量名和值是分开存储的
- 变量和值通过索引建立联系
- 变量值存储在相应的值对象中
- 变量存储的内容是值对象的
id id(变量)结果为值对象的id

2.4.3 对象分类
a. 不可变对象
变量赋值后,再赋一个新值,需要新生成一个值对象,相当于重新成成了对象,所以是不可变对象
- 数值
- 元组(序列)
- 字符串(序列)
- 集合

b. 可变对象
可变对象的
value可以修改,但变量本身没有变化
- 列表(序列)
- 字典
1 | # Python解释器版本 |

可见,可变对象修改的是元素变量的值对象,即新建一个值对象,使得原元素变量指向新的值对象,但是可变对象本身并没有发生改变
赋值操作

赋值操作,是将值对象的 id 存储到变量中
- 图中
b变量在修改前后都指向同一值对象 - 可见,改变原变量的值对象,不会影响赋值变量的指向
1 | # 修改回来的变量及其值对象 |

- 修改回原值后,又指向了原先的值对象,验证上述结论
2.4.4 == 和 is
== 和 != 比较的是值是否相等
is 和 is not 比较的是值对象的 id 是否相等
a is b为True时,a ==b一定是True,因为二者指向同一值对象
2.5 类型转换
类型转换是将对象的值转换为新的对象
- 根据当前的值创建一个新的对象
2.5.1 str()或 ''
将其他数据类型转化为 字符串类型
1 | a = 10 |

2.5.2 int()
浮点数去除小数部分,直接取整

布尔值,True——1,False——0

合法整数字符串直接转换为对象数字
不合法的整数字符串,会报错

None报错,无法转换为数字

2.5.3 float()
将合法内容转换为浮点数
合法的浮点数字符串会被转化成浮点数
不合法的字符串无法被转化

布尔类型
True——1.0
False——0.0

int型整数会被转化成float

2.5.4 bool()
转换为bool值
