数字类型
整数(int)
- 包含正整数,0,负整数
- 没有大小限制
- 可以表示为十进制,十六进制,八进制,二进制等。十进制为默认,其它进制需要加前缀。
浮点数(float)
- 以十进制小数形式表示
- 指数形式表示 1.2E2
- 浮点数只能以十进制书写
- 由于计算机存储有限以及内部使用二进制的原因,计算机不能够精确的表示浮点数,因此比较和运算时建议使用round()函数限定保留位数。
1
20.1+0.2 == 0.3 >> False
round(0.1+0.2,1) == 0.3 >> True
复数(complex)
布尔值
- True False
- 0,””,None 为False
- 其他数值和非空字符串为True
数据容器概论
- 避免定义大量变量,只用一个变量定义更多数据
- 一种可以存储多个数据元素的数据类型。
- 批量存储和使用多份数据。
- 根据是否能修改,是否支持重复元素,是否有序分为列表(list),元组(tuple),字符串(str),集合(set),字典(dict)
list 列表
定义
1 | # 字面量 |
特点
可以存储不同的数据类型,存储类型不受限制,并且允许嵌套列表。定义后可以被修改。有序,任意数量元素,允许重复元素。
1 | ["abc",236,25] |
列表的下标索引
1 | a = [1,2,3] |
列表的方法
什么是方法?
下面演示了一个对象中的方法(add),以及其是如何被使用的。
1 | # 方法的定义与使用 |
1 | 2. 增加元素 |
循环的遍历
1 | mylist = [1,2,3,4,5] |
- while循环可以控制循环条件,for循环只能一个一个取
- for循环无法无限循环,而while可以
- while用于任何循环场景更灵活,for用于处理容器更简单
元组
特点和描述
- 列表可以被修改,元组一但定义后无法修改。
- 元组用于在程序内封装无法被篡改的数据,通常作为参数传递给函数调用,或者从函数调用那里获得参数。
- 原组元素可以不同类型
- 允许嵌套
- 如果元组里嵌套了list,那么list的内容可以改变。
(1,2,["3","4"])
定义
1 | # 字面量 |
元组的下标索引
1 | a = (1,2,3) |
元组的方法
1 | 1. index方法 (获取内容对应索引值,元素不存在会报错) |
元组遍历同列表
字符串
字符串定义
普通字符串
1
2
3str1 = 'hello world'
str2 = "hello world"
str3 = """hello world"""字符串嵌套
1
2
3str1 = "输出单引号' "
str2 = '输入双引号" '
str3 = "\' \" "
特点
- 支持正向下标索引,和反向下标索引。
1
2
3str = "hello world"
str[0] # "h"
str[-1] # "d" - 只可以存储字符串
- 长度任意
- 允许重复字符串存在
- 字符串无法修改
- 支持while 和for循环
- Python中字符串以Unicode编码存储
转义字符
使用\
标识
转义字符 | 符号 |
---|---|
\ | 续行符 |
\ \ | 反斜杠 |
\‘ | 单引号 |
\ “ | 双引号 |
常用方法
演示:
1 | 1. index方法 (获取内容对应索引值,元素不存在会报错) |
1 | s.upper() s.lower # 大小写 |
序列
特点
- 序列是指内容连续,有序,可使用下标索引的一类数据容量。
- 元素之间存在先后关系,每个元素分配一个数字表示它的位置
- 元素之间不排他
- 常见序列字符串,列表,元组
序列的切片操作
从一个序列中取出一个子序列
序列[起始下标:结束下标:步长]
起始下标表示从何处开始,留空表示从头开始
结束下标是不包含本身的,结束下标是5则取到4就结束。留空表示取到结尾。
步长表示取元素的间隔。正数从头向尾,负数从尾向头。省略步长默认为1
1 | a = "ABCDEF" |
set集合
特点
- 不支持元素重复(自带去重功能)
- 内容无序,不支持下标索引访问
- 允许修改
- 不支持while循环(没法用下标索引),支持for循环
- 元素只能是固定数据类型,如整数,浮点数,字符串,元组
集合的定义
1 | 1. 字面量定义 |
方法
1 | 1. 创建集合 |
字典
key与value一一对应
定义
1 | 1. 定义字典字面量 |
特点
- 通过key获取value,key值不允许重复,重复会覆盖。
- 元素之间无顺序,无法使用下标索引,只能通过key值去找内容
- 字典的key和value可以是任意数据类型(key不可为字典)
- 每一份数据都是key-value 的键值对
- 可以用for循环遍历,但是不支持while
- 字典值支持修改,字典的建是唯一的,必须是不可变的数据类型
读取和嵌套
- 通过key获取valuename = {“a”:{
1
2
3
4
5
6
7
8
9
10dic = [a:1 ,b:2 ,c:3]
num = dic[a]
```
2. 字典嵌套
| 姓名 | 语文 | 数学 |
| --- | --- | --- |
| a | 36 | 39 |
| b | 69 | 58 |
“语文”:36,
“数学”:39} ,
“b”:{
“语文”:69,
“数学”:58}}
c = name[“a”][“语文”]
1 |
|
字典遍历
总结
数据容器的通用操作
- 字典在参与转换和排序时都会丢掉value值。
- 排序后都会返回列表。
- 字符串的比较是比较其ASCII码值,按位从前到后比较,第一位都是a则比较第二位,直到某一位的字符比另一个字符串对应字符大,则字符串大。所以abd>abc 。