python学习手册(第4版)学习笔记

159 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@[TOC](学习笔记(一)第五章 数字)

==注记:本笔记记录为自己不熟练或者不懂内容==

一、核心类型

整数、浮点数、复数;字符串

1、十六、 八、二进制常量

  • 十六进制以ox或oX开头,后跟0--9;A--F。
  • 八进制以0o或0O开头,后跟0--7。
  • 二进制以0b开头,后跟0--1。
hex()将十进制转换成十六进制
oct()   bin()
另外有	 int(str,base)  其中str为字符串;base=8意为八进制的‘str’转换为十进制的数
例:
a = int("10",2)
结果是a = 2

2、表达式操作符

例如

x < y , x != y
x is y,x is not y
x | y,x & y
(p153表5-2)(搜索框页数)
表5-2中,越靠后的操作符优先级越高
  • 当3+3.14时,是一个整数和一个浮点数相加。此时python的运算逻辑是首先将被操作的对象转换成其中最复杂的类型,就是说先将整数转换成浮点数,然后进行计算,得出的结果也就是浮点数。复杂度:整数<浮点数<复数;
  • 比较问题:
1、x < y < z 与 x < y and y < z 等价,并且第一种y只计算一次,所以更快
2、另外一个:1==2 < 3 ;python返回Flase。因为python不会把1==2false的
结果和3比较(即0<3),这样将会得到true。

3、除法注意问题

  • 注意’/‘与’//‘的用法
  • floor除法与截断除法(p164)

4、位操作

python支持C语言中的大多数数学表达式,包括把整数当作二进制位串对待的操作。 例如 在这里插入图片描述 其中,1的二进制是0001,<<2左移了两位,变成了0100,所以x=4。而(0001|0010 = 0011)也即3;(0001&0001 = 0001)也即1。

  • 如上所示,python支持位运算,但是python相对于底层语言C来说,位运算不会那么重要。除非你和C语言封装的二进制包或者网络包打交道。hhh
  • bin()函数可以显示十进制数转为二进制数,bin_length()可以查询出以二进制表示一个数所需的位数。

在这里插入图片描述

二、其他数字类型

1、小数数字

小数对象比其他数据类型更复杂,通过导入模块调用函数来实现。 浮点数缺乏精确性,例如: 在这里插入图片描述 与硬件相关的浮点数运算存在精度方面的缺陷。 当使用小数对象时: 在这里插入图片描述

2、分数类型

调用同小数类似,需要导入模块。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

三、集合

1、集合特点

  • 它是唯一的、不可变的对象的一个无序集合。
  • 集合中的项只能出现一次
  • 集合本质上具有基本的数学本质特征
  • 列表和字典无法加入到集合中,元组可以
  • 集合也可以进行迭代解析

2、为什么使用集合

  • 由于集合中的项只能出现一次,因此可以用来过滤重复的项

在这里插入图片描述

  • 遍历图形或其他结构时,集合可以记录已经访问过的位置(高级阶段)
  • 处理较大数据集合(数据库问题)

四、数字扩展

虽然python的核心数据类型可以完成大部分工作,但还是有第三方开源扩展:Numpy 可以处理矩阵、向量等,Python+Numpy == 灵活的matlab