对python中的float除法和整除法的实例详解

yipeiwu_com7年前Python基础

从python2.2开始,便有两种除法运算符:"/"、"//"。两者最大区别在:

python2.2前的版本和python2.2以后3.0以前的版本的默认情况下,"/"所做的除法是以一种两个数或者多个数出现一个浮点数结果就以浮点数的形式表示,即float除法

"//"所做的除法则不相同,"//"不管两者出现任何数,都以整除结果为准,不对小数部分进行处理,直接抛弃,也就是整除法

以下是笔者在编译器测试的数据,测试的版本是python2.7

关于"/":

>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

由以上的例子我们可得出,只要除数中有一个数是浮点数,那么得到的结果也是浮点数

以下是关于"//":

>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

由以上的例子,我们可以看出,两个整型相除,得到的还是整型,但是。如果一个浮点数除以一个非浮点数得到的还会是一个浮点数,但是,计算的结果却是忽略小数部分,运算的结果类似两个整型相除,但是得到一个浮点数。另外"//"对于两个浮点数也是不例外的。

如何让"/"和"//"进行分工

在默认情况下,这两种运算符有很大的重叠地方,比如,当两个数都是整数的时候,两者的运算结果是没有区别的。如果想在python中让这两种有一个明确的分工。即"/"可以用于float除法,"//"用于整除法,我们可以在程序开始的时候做以下声明:

from __future__ import division

声明后测试的结果(以下测试的版本是python2.7)

>>> from __future__ import division
>>> 3/2
1.5
>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3.0/2.0
1.5
>>> 3//2
1
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
>>> 3//2.0
1.0
>>> -11/2
-5.5

以上,我们可以知道,做这个声明以后,"/"进行的将是float除法而不是整除法。

还需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模块,就算分子分母都是int,返回的也将是浮点数

以上这篇对python中的float除法和整除法的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现简单中文词频统计示例

python实现简单中文词频统计示例

本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下: 任务 简单统计一个小说中哪些个汉字出现的频率最高 知识点 1.文件操作 2.字典 3.排序 4.lambda 代...

关于numpy中np.nonzero()函数用法的详解

np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。一般来说,通过help(np.nonzero)能够查看到该函数的解析与例程。但是,由于例程...

python代码制作configure文件示例

在lua中,一直用lua作为config文件,或承载数据的文件 - 好处是lua本身就很好阅读,然后无需额外写解析的代码,还支持在configure文件中读环境变量,条件判断等。 在lu...

基于循环神经网络(RNN)的古诗生成器

基于循环神经网络(RNN)的古诗生成器,具体内容如下 之前在手机百度上看到有个“为你写诗”功能,能够随机生成古诗,当时感觉很酷炫= = 在学习了深度学习后,了解了一下原理,打算自己做个实...

Python有序字典简单实现方法示例

Python有序字典简单实现方法示例

本文实例讲述了Python有序字典简单实现方法。分享给大家供大家参考,具体如下: 代码: # -*- coding: UTF-8 -*- import collections pri...