Python3 CookBook | 数字处理
来源:互联网 发布:hadoop端口号 编辑:程序博客网 时间:2024/05/22 08:24
文章首发于知乎专栏,欢迎关注。
https://zhuanlan.zhihu.com/pythoncookbook
以下测试代码全部基于 Python3。
数字处理一般来说都比较简单,这篇文章主要介绍几个常见问题和常用函数。
取整和四舍五入
使用 int() 函数取整会直接丢弃小数位,不进行四舍五入。
In [4]: int(1.63)Out[4]: 1
round() 函数会根据所带参数确定保留的小数位数,然后输出四舍五入后的结果。
In [6]: round(1.63)Out[6]: 2In [7]: round(1.63, 1)Out[7]: 1.6
精确的浮点数运算
浮点数计算最让我头疼的就是它的小误差,这种误差并不是每一次都会出现,有的时候想在页面上展示一个计算结果,突然发现这个结果变成了一大长串数字,然后还要修改代码,将这串数字格式化。
In [8]: a = 1.1In [9]: b = 1.2In [10]: a + bOut[10]: 2.3In [11]: a = 4.2In [12]: b = 2.1In [13]: a + bOut[13]: 6.300000000000001
如果想要避免这种情况可以使用 Decimal() 来进行精确计算,但这样的问题是会有一些性能上的损耗。
In [14]: from decimal import DecimalIn [15]: a = Decimal(2.1)In [16]: b = Decimal(4.2)In [17]: a + bOut[17]: Decimal('6.300000000000000266453525910')In [18]: a = Decimal('2.1')In [19]: b = Decimal('4.2')In [20]: a + bOut[20]: Decimal('6.3')
需要注意的是,传入的参数需要是字符串,有点奇怪。
随机数
用 random 来生成随机数,该模块还提供了很多 function,特别有用。
产生[0,1)之间的随机数。
random.random()
产生[min, max)之间的随机整数。
random.randint(min, max)
从可迭代对象中随机选取一个元素返回。
random.choice(iterable)
从可迭代对象中随机选取不重复的 k 个元素,以数组的形式进行返回。
random.sample(iterable, k)
在[start, stop)中以步长 step 进行步进,随机产生一个元素。
random.randrange(start, stop, step)
对序列进行原地随机打乱顺序,返回 None,一定要注意这是原地起作用的。
random.shuffle(l)
这里就不做具体演示了。
关于数字还有很多其他操作,比如格式化输出,二八十六进制整数的转换,复数运算等等,但都不是很复杂,有的可能也不常遇到。
未完待续。。。
- Python3 CookBook | 数字处理
- 处理数字--cookbook读书笔记
- Python3 CookBook中文版
- Python3 CookBook | 字符串和文本
- Python3 CookBook | 日期和时间
- as3 cookbook 处理事件
- 处理日期--cookbook读书笔记
- SQL Cookbook—数字、日期
- Python3 CookBook | 数据结构和算法(一)
- Python3 CookBook | 数据结构和算法(二)
- SQL Cookbook学习笔记-使用数字
- python007 Python3 数字(Number)
- Python3 数字(Number)
- Python3 cookbook学习笔记-数据结构与算法1
- Python3 cookbook学习笔记-数据结构与算法2
- Python3 cookbook学习笔记-数据结构与算法3
- Python3 cookbook学习笔记-数据结构与算法4
- Python3 cookbook学习笔记-数据结构与算法5
- 集合
- 3
- 自定义View绘制时钟
- 单链表
- 自定义控件旋转圆加载进度
- Python3 CookBook | 数字处理
- RecyclerView的使用(二)——拖曳移动和滑动删除
- 2141 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(方法2)
- 3
- dubbo配置详解
- Java中冒泡排序与选择排序
- caffe中使用droupout层对cifar10图片集提高准确率10%(0.62到0.72)
- HDU 1429
- 5483. 【清华集训2017模拟11.26】简单路径