Python中除法使用的注意事项
本文实例讲解了Python中除法使用的注意事项,是非常重要的技巧,对于Python程序设计来说有很好的借鉴价值。具体分析如下: 现来看如下示例: def avg(first,*rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1,2) # 1.5 avg(1,2,3,4) # 2.5 源程序只是为了演示变长参数的使用,不过 Python 2.7.1 的解释器里,我得到的结果却和注释的结果不一样 >>> def avg(first,*rest): ... return (first + sum(rest)) / (1 + len(rest)) ... >>> avg(1,2) 1 >>> avg(1,4) 2 可以很明显的看到,小数点后的数据被截断了,我记得两个整数相除,"//" 应该才是取整,难道我记错了? >>> def avg(first,*rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1,4) 2 将 “/” 改成了“//”,得到的结果是一样的,“//”的确是取整这一点我是没记错,不过为什么“/”的结果也是截断了的? 同样的程序我在 3.4.1 的解释器里面做了测试,得到了预想的结果: >>> def avg(first,2) 1.5 >>> avg(1,4) 2.5 >>> def avg(first,4) 2 可以看到在 3.4.1 的解释器里,“/”的结果保留了小数位,而“//”则是取整后的结果 搜索之后,找到了stackoverflow上的这个问题:Python里如何强制除法的结果为浮点数? 注意这个是针对 2.x 的版本,3.x 里面并不存在这样的问题 方法1: >>> from __future__ import division >>> a = 4 >>> b = 6 >>> c = a / b >>> c 0.66666666666666663 方法2: 类似于C语言里面的做法: c = a / float(b) 相信本文所述实例会对大家的Python程序设计有一定的帮助。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – igraph:为什么add_edge函数如此缓慢地对add_edg
- Django Rest Framework上的全文搜索仅支持MYSQL?
- python – 最终确保一些代码以原子方式运行,无论如何?
- python – 将变量传递到jinja导入或从父HTML文件中包含
- python – Pylint无效的函数名称
- python – 通过多维数组的所有1维子阵列进行迭代
- 【Python-多进程】Python中多进程之间的数据共享
- 【Python】python中plot用法——线条、点、颜色
- Python-redis keys()返回字节对象列表而不是字符串
- python – matplotlib.pyplot.imshow:在使用属性“sharex”