基本数据类型包括两大类,为不可变数据类型,另一类为可变数据类型.
1.不可变数据类型一类
不可变数据类型包括数字(Number),字符串(String),元组(Tuple).
1.1数字(Number)
数字包含整型(int),浮点型(float),布尔型(bool),复数(complex)
数字不可迭代
1.1.1整型(int)
- 不可迭代,主要用于计算和比较,
- 在python2中,存在整型(int)与长整型(long),在python3中只有整型(int).
1.1.2布尔型(bool)
- 布尔型只有两个值:True和False
- 可以表示False的数据有:0,None,'',[],(),{},set(),
- 除此之外的数据表示True.
1.1.3浮点型(float)
- 浮点型叫做浮点型是因为小数的小数点是浮动的
- 浮点型只能表示有理数(有限小数和无限循环小数),不能表示无理数
- 浮点型的小数位是通过转换成二进制进行处理的,存在位数过长就不准确的问题(基本所有语言都存在这个问题)
- 如果位数过长,可以考虑转换成字符串进行储存
1.1.4复数(complex)
某一个数的平方是-1 ,那么这个数就是一个虚数的基础单位 j
复数 = 实数+虚数 = a+bj
复数不能比较大小
共轭复数 : a+bj 和 a-bj是一对共轭复数
a+bj 和 a+bJ都是复数
1.2字符串(String) 'String'
字符串是有序的,可迭代的.迭代的结果为字符串中的每一个字符
1.3元组(Tuple) (ele,)
元组与列表类似,是可迭代的,有序的,但元组属于不可变数据类型,元组中的数据不能增加,删除和修改.
2.可变数据类型包括列表(List),字典(Dict),集合(Set).
2.1列表(List) [ele]
列表是可迭代的,有序的
列表的增删改查:
增:list.append(ele) 在列表末尾追加一个元素
list.insert(index,ele) 在指定索引的位置插入一个元素
list.extend(seq) 迭代添加,将容器类型中的每个元素追加到末尾
删:list.remove(ele) 删除列表中指定元素
list.pop(index) 删除指定索引的元素,返回被删除的元素
list.clear() 清空列表
改:list[index] = 1 通过索引修改
查:可通过for循环查询
列表推导式:[x for x in list]
2.2字典(Dict) {key:value}
字典是无序的,可迭代的.迭代的结果为字典中的每一个键
字典的元素由键值对组成
字典中的键必须是不可变数据类型,值无要求
字典的键不重复,如果重复用后面的值覆盖前面的值.
字典的增删改查:
增:dict[key] = value 如果字典中没有这个键,就把这对键值添加到字典中
dict.setdefault(key,value) 如果字典中存在这个键,则返回这个键对应的值;如果不存在,则添加这个键值对并返回value,默认为None
删:dict.pop(key,default) 删除key所对应的值,返回值为被删除的值.如果key不存在,返回default值
dict.popitem() 随机删除一对键值对(一般为最后一个),返回被删除键值对为元素的元组
改:dict[key] = value 如果字典中有这个键,就修改对应的值
dic.update(dict1) 以dict1中的内容更新dict
查:dict.get(key,default) 如果字典中存在这个键,则返回这个键对应的值;如果不存在,则返回value,默认为None
dict[key] 根据键查看值
2.3集合(Set) {ele}
集合是无序的,可迭代的
集合的元素必须由不可变数据类型组成
集合的元素不重复,可以用来去重
集合的增删改查:
增:set.add(ele) 将ele添加到set中
set.update(seq) 迭代添加(参数为可迭代类型)
删:set.remove(ele) 删除指定元素,不存在则异常
set.pop() 随机删除一个元素,返回被删除的元素
set.discard(ele) 删除指定元素,不存在也不会报错
改:集合中无法修改,只能通过删除后添加来进行修改
查:通过for循环来查看集合
3.运算符
运算符共分为以下几种:
3.1算术运算符
例:a = 5 b = 2
- 加(+)减(-)乘(*)除(/):与数学的加减乘除相同
- 取模(%):取余数 a % b = 1
- 幂(**):a ** b = 25
- 整除:取商结果的整数部分 a // b = 2
3.2比较运算符
- ==:判断左右的值是否相等,如果相等,则返回True;否则返回False
- !=:判断左右的值是否不相等,如果不相等,则返回True;否则返回False
- >:判断左边的值是否大于右边,如果大于,则返回True,否则返回False
- >=:判断左边的值是否大于等于右边,如果大于等于,则返回True,否则返回False
- <:判断左边的值是否小于右边,如果小于,则返回True,否则返回False
- <=:判断左边的值是否小于等于右边,如果小于等于,则返回True,否则返回False
3.3赋值运算符
- =:赋值运算符,将运算符右边的结果赋给左边的变量
- +=:加等于,a += 1结果与a = a + 1相等
- -=:加等于,a -= 1结果与a = a - 1相等
- *=:加等于,a *= 1结果与a = a * 1相等
- /=:加等于,a /= 1结果与a = a / 1相等
- %=:加等于,a %= 1结果与a = a %1相等
- **=:加等于,a **= 1结果与a = a ** 1相等
- //=:整除等于,a //= 1结果与a = a // 1相等
3.4逻辑运算符
逻辑运算符有与(and),或(or),非(not)
例:a = 1,b = 2
- 与(and):判断两个值是否都为True,如果都为True,则返回后值;如果存在False,则返回False a and b,结果为2
- 或(or):判断两个值是否都为False,如果都为False,则返回后值,如果存在True,则返回True a or b,结果为1
- 非(not):如果值为True,则返回False;否则返回True not(a and b),结果为False
3.5成员运算符
成员运算符有in与not in
- in:如果在指定的序列中找到值返回 True,否则返回 False.
- not in:如果在指定的序列中找不到值返回 True,否则返回 False.
身份运算符
is,is not
位运算符
pass