一、数值与字符串
int、float 类型
Python的in 、float类型相对于其他语言的没有明确的范围限制,Python的int、float类型能存储多大的数值是由硬件决定。
十进制可以直接写
八进制是0o开头
十六进制0x开头
二进制 0b 开头
数学运算符
+ 加
- 减
* 乘 如果是字符串乘以一个数字表示这个字符串重复几次
** 计算次方
/ 除
// 整除
% 取余
数值的内置函数及工具模块
内置函数
int() 转化成int类型的数值 int(value,进制) 例子: int("1101",2) int("177",8) int("9ff",16)
float() 转化为float 类型数值
round() 四舍五入
bin(Number) 转化为二进制
oct(Number) 转化为八进制
hex(Number) 转化为十六进制
工具模块 math ,导入模块
math模块下的函数
floor() 向下去整 ,往小的方向取 【3..14 获得的是3 , -3..14获得的是-4】
trunc() 往0的方向取值 【3.14 获得的是3, -3.14 获得的是 -3】
ceil() 向上取整,往大的方向取 【3.14 获得的是4 , -3.14 获得的是 -3】
math.pi 可以获得 π 值
pow(2,4) 2的四次方
sqrt(81) 开平方
浮点型的精度处理
正常情况下,上图应该得到的是 0 ,但是却得到了别的数值。这个就是精度问题。
decimal 模块就能解决这个精度问题,该模块提供了一个Decimal 类,注意传值的时候需要以字符串的形式
另外一种导入方式
Bool 的本质
bool 只有 true 与 false 对应着 1 与 0
内置函数 bool() 将一个值转化成Bool 值
0 、 0.0 、 [] 、 { } 、 '' 、 None 都会转化为false
二、列表(list)
(1)任意对象有序集合
(2) 通过索引下表访问元素,如下图所示甚至可以使用负数进行访问,-1是最后一个元素
范围索引[0:2]左闭右开(不包含右端)
(3)可变长度。append方法进行追加
(4)任意嵌套
(5)支持原位改变, 可以看到从 25 变成 26
通用操作 :
(1)list函数,将一个值转化为list
(2)判断元素是否在集合里面【 (in)、(not in)】
(3)联接序列 list1 + list2 【list1,list2 本身没有任何改变】
(4)重复序列内容 list1 * n (n表示重复几次) ,【list1本身也没有改变】
(5)下标获取元素与访问指定索引范围
范围访问 cities[:2] 前面不写,默认从0开始。
cities[1:] 后面不写,访问到最后
cities[:] 都不写,访问所有
(6)按照步长值访问指定索引访问 语法: list1[i:j:k]
k 为步长值。 k = 2。即是每2个取1个。(每k个取1个,最后不满k个,当k个取)
(7)获取序列长度。len函数
(8)列表的部分通用函数
最大值(max)
最小值(min)
总和(sum)
获取某元素的下表 list.index(x)
获取某元素在列表出现的次数 list.count(x)
可变序列及列表的通用操作
(1)改变某个元素的值 list[0] = x
(2)改变某个范围内的值 list[n:m] = t 。 t 表示一个可以迭代的值,数目必须与替换的范围保持一致
(3)删除元素 del 。 删除范围的另外一种写法 x[0:2] = [] 等于一个空的序列也是一种删除
(4) list.remove(x) 删除一个值。如果又相同值,则删除第一个匹配值
(5) list.clear() 清空列表
(6) 追加元素list.append(x) 与 扩展元素s.extend(list)【区别】
(7) list.insert(index,value) index 索引位置,value 具体值。在指定位置插入一个值
list.insert(0, 3.14) 等于 list[0:0] = [3.14]
(8) list.pop(index) 删除指定索引的元素,并将删除值返回。
(9) list.reverse() 反转。不返回值。而是改变自身的元素位置
(10)复制序列
list.copy()
y = list.copy() 等同于 y = list[:]
(11) 排序 list.sort() 没有返回值,也是影响本身
倒序 list.sort(key=None,reverse=True) 参数是否反转而 sorted(list) 返回一个新的结果。不影响本身