Python中除法使用的注意事项


Posted in Python onAugust 21, 2014

本文实例讲解了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 相关文章推荐
python调用cmd命令行制作刷博器
Jan 13 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
Python字符串拼接六种方法介绍
Dec 18 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
tensorflow实现逻辑回归模型
Sep 08 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Pandas实现一列数据分隔为两列
May 18 Python
python支持多继承吗
Jun 19 Python
如何利用Python 进行边缘检测
Oct 14 Python
Python中dictionary items()系列函数的用法实例
Aug 21 #Python
Python 不同对象比较大小示例探讨
Aug 21 #Python
python字符串连接方式汇总
Aug 21 #Python
零基础学Python(一)Python环境安装
Aug 20 #Python
Python中replace方法实例分析
Aug 20 #Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 #Python
Python中列表(list)操作方法汇总
Aug 18 #Python
You might like
php addslashes 函数详细分析说明
2009/06/23 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python画折线图的程序
2018/07/26 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python实现宿舍管理系统
2019/11/22 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Java的类与C++的类有什么不同
2014/01/18 面试题
单位介绍信范文
2014/01/18 职场文书
营销总经理岗位职责
2014/02/02 职场文书
询价采购方案
2014/06/09 职场文书
2014年计生标语
2014/06/23 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
买卖合同协议书范本
2014/10/18 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
怎么写工作检讨书
2014/11/16 职场文书
青涩记忆观后感
2015/06/18 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS