详谈Python2.6和Python3.0中对除法操作的异同

yipeiwu_com5年前Python基础

Python中除法有两种运算符:'/'和'//';有三种类型的除法:传统除法、Floor除法和真除法。

X / Y类型:

在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。

示例代码:

Python 2.7版本中结果:

>>> 3/2
1
>>> 3/2.0
1.5
>>> 4/2
2
>>> 4/2.0
2.0

Python 3.4版本中结果:

>>> 3/2
1.5
>>> 3/2.0
1.5
>>> 4/2
2.0
>>> 4/2.0
2.0

X // Y 类型:

Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,这个操作不考虑操作对象的类型,总是省略小数部分,剩下最小的能整除的整数部分。

示例代码:

Python 2.7版本中结果:

>>> 3//2
1
>>> 3//2.0
1.0
>>> 4//2
2
>>> 4//2.0
2.0

Python 3.4版本中结果(与2.7版本一样):

概括

>>> 3//2
1
>>> 3//2.0
1.0
>>> 4//2
2
>>> 4//2.0
2.0

来讲:

• 在Python 2.6中,'/'执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);'//'执行Floor除法,与Python3.0一样,对于整数执行截断除法,浮点数执行浮点除法。

• 在Python 3.0中,'/'总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;'//'执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。

-------------------------------------------------

补充:

Floor除法:效果等同于math模块中的floor函数:

math.floor(x) :返回不大于x的整数

所以当运算数是负数时:结果会向下取整。

>>> 5//3  #1.6666666666666667
1
>>> -5//3
-2
>>> 

与floor()函数类似的还有很多,比如trunc()函数:

>>> import math
>>> math.trunc(-1.6)
-1
>>> math.trunc(1.6)
1

以上这篇详谈Python2.6和Python3.0中对除法操作的异同就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python程序员面试题 你必须提前准备!(答案及解析)

Python程序员面试题 你必须提前准备!(答案及解析)

在发布《Python程序员面试,这些问题你必须提前准备!》一文后,应广大程序员朋友的强烈要求,小编就Python程序员面试必备问题整理了一份参考答案,希望能对准备换工作的程序员朋友有所帮...

带你彻底搞懂python操作mysql数据库(cursor游标讲解)

带你彻底搞懂python操作mysql数据库(cursor游标讲解)

1、什么是游标? 一张图讲述游标的功能: 图示说明: 2、使用游标的好处? 如果不使用游标功能,直接使用select查询,会一次性将结果集打印到屏幕上,你无法针对结果集做第二次编...

python实现猜数字游戏

python实现猜数字游戏

说明: 本例改编自《Python编程快速上手》。例子很简单我就不多说了 直接上代码,给初学python练手用。 给你6次机会猜对一个预先生成好的1-20之间的整数。覆盖一下知识点:...

Python如何实现文本转语音

准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了。 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯...

Python2和Python3中urllib库中urlencode的使用注意事项

前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urle...