Python中除法使用的注意事项
作者:shichen2014 时间:2021-11-07 07:18:17
本文实例讲解了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, 2, 3, 4)
2
可以很明显的看到,小数点后的数据被截断了,我记得两个整数相除,"//" 应该才是取整,难道我记错了?
>>> def avg(first, *rest):
... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//'
...
>>> avg(1, 2)
1
>>> avg(1, 2, 3, 4)
2
将 “/” 改成了“//”,得到的结果是一样的,“//”的确是取整这一点我是没记错,不过为什么“/”的结果也是截断了的?
同样的程序我在 3.4.1 的解释器里面做了测试,得到了预想的结果:
>>> def avg(first, *rest):
... return (first + sum(rest)) / (1 + len(rest))
...
>>> avg(1, 2)
1.5
>>> avg(1, 2, 3, 4)
2.5
>>> def avg(first, *rest):
... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//'
...
>>> avg(1, 2)
1
>>> avg(1, 2, 3, 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,除法,注意事项
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
在PHP程序中运行Python脚本(接收数据及传参)的方法详解
2023-11-24 10:14:48
![](https://img.aspxhome.com/file/2023/0/108110_0s.png)
7个鲜为人知却非常实用的PHP函数
2023-10-15 03:46:47
远程部署工具Fabric详解(支持Python3)
2023-10-26 14:05:18
有关缓存 Cache 的随想
2008-06-09 14:25:00
![](https://img.aspxhome.com/file/UploadPic/20086/9/200869143245569s.jpg)
网页版面布局的方法及技巧
2007-10-29 12:41:00
Python高级特性 切片 迭代解析
2022-03-28 14:32:49
![](https://img.aspxhome.com/file/2023/5/84915_0s.png)
从外到内提高SQL Server数据库性能
2009-01-22 14:12:00
![](https://img.aspxhome.com/file/UploadPic/20091/2009122172131354.jpg)
python验证码图片处理(二值化)
2023-09-14 15:29:02
![](https://img.aspxhome.com/file/2023/7/97177_0s.jpg)
MySQL中与NULL值有关的疑难问题
2008-11-24 12:47:00
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2023-08-29 20:25:40
如何处理好网页色彩搭配
2007-08-10 13:22:00
动态加载JavaScript的小实践
2009-11-12 12:38:00
![](https://img.aspxhome.com/file/UploadPic/200911/12/yui-loader-bug-in-ie-58s.png)
Python调用C语言的实现
2021-10-15 11:48:53
Python配置文件管理之ini和yaml文件读取的实现
2022-01-10 15:33:08
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
2011-04-14 10:39:00
再论Javascript下字符串连接的性能
2010-06-26 13:13:00
像表格一样用DIV+CSS给网页布局
2008-10-18 15:45:00
Python装饰器decorator用法实例
2023-02-06 23:26:43
Python列表推导式实现代码实例
2023-02-07 21:35:05
python实现每天自动签到领积分的示例代码
2023-06-18 09:17:32
![](https://img.aspxhome.com/file/2023/2/90872_0s.png)