Python除法之传统除法、Floor除法及真除法实例详解
作者:若数 发布时间:2023-03-11 18:03:46
先给大家介绍下Python除法之传统除法、Floor除法及真除法
python3.0
/总是执行真除法,不管操作数的类型,都返回浮点数结果(即使能整除,如4/2==2.0);
//执行Floor除法,会截断余数直接返回一个整数,如果有任何一个操作数是浮点数则返回浮点数(如4//2==2,3//2==1.5, 4.0//2==2.0)
总之:在python3.0中,/为真除法,不会截断,且结果无论能否整除都是浮点数;//为地板除法,会对除法的结果进行取整返回,至于返回的结果是否是浮点数取决于操作数中有无浮点数,如两个操作数都是整数那么就直接返回一个取整后的整数,如果操作数中有浮点数则返回结果是浮点数。
python2.0
/表示传统除法,如果两个操作数都是整数的话执行截断除法,否则执行浮点除法,//执行Floor除法,同3.0
注意
在3.0中,/的结果总是返回浮点数与操作数类型无关,而//的结果总是依赖于操作数的类型,如果有一个是浮点数结果就是浮点数
ps:下面看下Python3除法之真除法、截断除法和下取整对比
概述
在Python3中,数学运算中的除法被分为两种,分别是“真除法”,即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而“截断除法”,则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分。以下是两种除法的基本形式:
# 真除法
X / Y
# 截断除法
X // Y
真除法
X = 8
Y = 2
Z = 3
print(X / Y)
print(X / Z)
示例结果:
4.0
2.6666666666666665
真除法的结果表明不论操作数的类型其相除结果都返回一个浮点结果。
截断除法
X = 8
Y = 2
Z = 3
S = -8
print(X // Y)
print(X // Z)
print(S // Y)
print(S // Z)
示例结果:
4
2
-4
-3
从示例中我们可以看到,截断除法并不是真的直接去掉小数点后面的数字,而是类似模块 math 中的 floor 方法,即向下取整,且负值的取整方式也是这样的。
import math
math.floor(2.0)
math.floor(2.6666666666666665)
math.floor(-2.0)
math.floor(-2.6666666666666665)
示例结果:
2
2
-2
-3
同样的模块 math 中的 ceil 方法可以实现浮点数的上取整。
import math
print(math.ceil(2.0))
print(math.ceil(2.6666666666666665))
print(math.ceil(-2.0))
print(math.ceil(-2.6666666666666665))
2
3
-2
-2
总结
以上所述是小编给大家介绍的Python除法之传统除法、Floor除法及真除法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
来源:https://juejin.im/post/5ce54eeaf265da1b855c2ce3
猜你喜欢
- 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
- 本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下:定义一个一维数组一个二维数组如下$fr
- 问题:1.一个销售系统,设有各级代理商,每个代理商的表是这样设计的 数据库结构表1: 代理商资料表[id]
- 打开文件import xlrddata = xlrd.open_workbook('路径')获取文件中所有工作表的名称。da
- 装了 Access 2003 安全更新 (KB981716) 之后 Access 打不开,office2003-KB981716-FullF
- 最近在内部讨论关于”完美三栏”的话题,看到一篇”In Search of the Holy Grail“,相当的好.故此翻译之.In Sea
- lambda表达式python中形如:lambda parameters: expression称为lambda表达式,用于创建匿名函数,该
- 本代码来源于 《Python和Pygame游戏开发指南》中的 Star Pusher 游戏,供大家参考,具体内容如下# Star Pushe
- 最近在做一个站点时,需要生成静态页面,但是生成的静态页面中有些内容是需要动态获取的,怎不能每天生成一下吧。。 最后上网查了一下,再加上个要总
- Python序列化的概念很简单。内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?这取决于你想要怎么保存,怎么
- 毫无疑问,我们生活在编辑器的最好年代,Vim是仅在Vi之下的神级编辑器,而脱胎于Vim的NeoVim则是这个时代最好的编辑器,没有之一。异步
- 目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?fil
- 前言提示:在管理服务器的过程中,发现有很多服务器在启动的过程中默认以PXE方式启动,这就导致我们无法将PXE装机程序放开到所有的交换机端口中
- 井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要
- (1)序列化即js中的Object转化为字符串1.使用obj.toJSONString()var str=obj.toJSONString(
- Flask-Admin是一个功能齐全、简单易用的Flask扩展,让你可以为Flask应用程序增加管理界面。它受django-ad
- 本文实例讲述了Python实现的各种常见分布算法。分享给大家供大家参考,具体如下:#-*- encoding:utf-8 -*-import
- 如何用JMail同时给多人发信?在ASP中,为什么我在Jmail收件人处指定多个收件人时,像这样:JMail.AddRecipient&nb
- 这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 关于Ajax在使用中要使浏览器产生前进后退的方法,网上比较多的方法有两种:一是采用hash值的方式,这是我们在地图preview版中使用的方