解析python 中/ 和 % 和 //(地板除)

python / 和 % 和 //(地板除)用于对数据进行除法运算。

python中 // 和 / 和 %

简介

python中与除法相关的三个运算符是// 和 / 和 %,下面逐一介绍。
“/”,这是传统的除法,3/2=1.5
“//”,在python中,这个叫“地板除”,3//2=1
“%”,这个是取模操作,也就是区余数,4%2=0,5%2=1

Python中分为3种除法:1、/,2、%,3、//

1、/

基于 python3

/ 除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数。

两个整数没能整除,返回整数

10 / 3
> 3.3333333333333335

两个浮点数相除,返回浮点数

1.0 / 2.0
> 0.5

两个数的其中一个是浮点数,返回浮点数

3 / 2.0
> 1.5

两个整数恰好整除,返回浮点数

9 / 3
> 3.0

基于python2

python2版本整数除法采用的是 floor 的方式,也称为地板除法。

两个整数相除,返回整数

3 / 2
> 1

两个数的其中一个是浮点数,返回浮点数

3 / 2.0
> 1.5

两个整数恰好相除,返回整数

6 / 2
> 3

2、 %

% 除法的结果是求余数。

两个整数相除,返回整数

5 % 2
> 1

两个整数恰好相除,返回0

6 % 3
> 0

3、 //

// 称为地板除,两个整数的除法仍然是整数,它总是会舍去小数部分,返回数字序列中比真正的商小的,最接近的数字。

简单来说就是求商。

两个整数相除,返回整数

3 // 2
> 1

两个数的区中一个是浮点数,返回浮点数

3 // 2.0
> 1.0

负数除以正整数是负数自己本身

-1 // 2.0
> -1

负数除以负整数是0

-1//-4
> 0

总结

/ 就是大家熟知的除法,只不过python2的时候不同而已;% 是求余数,// 是求商

PS:下面在看下python的地板除和除有什么区别吗? // 和 /

非常小的细节

100/2
Out[3]: 50.0

100//2
Out[4]: 50

到此这篇关于解析python 中/ 和 % 和 //(地板除)的文章就介绍到这了,更多相关python / 和 % 和 //内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-06-27

深入解析Python中函数的参数与作用域

传递参数 函数传递参数时的一些简要的关键点: 参数的传递是通过自动将对象赋值给本地变量名来实现的.所有的参数实际上都是通过指针进行传递的,作为参数被传递的对象从来不自动拷贝. 在函数内部的参数名的赋值不会影响调用者. 改变函数的可变对象参数的值会对调用者有影响. 实际上,Python的参数传递模型和C语言的相当相似: 不可变参数"通过值"进行传递.像整数和字符串这样的对象是通过对象引用而不是拷贝进行的,但是因为不论怎么样都不可能在原处改变不可变对象,实际的效果就很像创建了一份拷贝. 可

深入解析Python中的lambda表达式的用法

普通的数学运算用这个纯抽象的符号演算来定义,计算结果只能在脑子里存在.所以写了点代码,来验证文章中介绍的演算规则. 我们来验证文章里介绍的自然数及自然数运算规则.说到自然数,今天还百度了一下,据度娘说,1993年后国家规定0是属于自然数.先定义自然数及自然数的运算规则: 用lambda表达式定义自然数(邱齐数) 0 := λf.λx.x 1 := λf.λx.f x 2 := λf.λx.f (f x) 3 := λf.λx.f (f (f x)) ... 上面定义直观的意思就是数字n, 是f(

解析Python中的变量、引用、拷贝和作用域的问题

在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义.如下: >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a'

深入解析Python中的urllib2模块

Python 标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节描述的并不清楚,比如 urllib2 这个 HTTP 客户端库.这里总结了一些 urllib2 的使用细节. Proxy 的设置 Timeout 设置 在 HTTP Request 中加入特定的 Header Redirect Cookie 使用 HTTP 的 PUT 和 DELETE 方法 得到 HTTP 的返回码 Debug Log Proxy 的设置 urllib2 默认会使用环境变量 http_proxy

深入解析Python中的list列表及其切片和迭代操作

有序列表list >>> listTest = ['ha','test','yes'] >>> listTest ['ha', 'test', 'yes'] len()获取list元素个数. >>> len(listTest) 3 可以用索引来访问每一个元素,0表示第一个,-1还可以表示最后一个,即倒数第一个,依此类推-2表示倒数第二个,超过了也会报越界错误. >>> listTest[0] 'ha' >>> lis

从局部变量和全局变量开始全面解析Python中变量的作用域

理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量.在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量.例如: num = 100 def func(): num = 123 print num func() 输出结果是123.说明函数中定义的变量名num是一个局部变量,覆盖全局变量.再例如: num = 100 def func(): num += 100 print num func() 输出结果是:Unb

详细解析Python中__init__()方法的高级应用

通过工厂函数对 __init__() 加以利用 我们可以通过工厂函数来构建一副完整的扑克牌.这会比枚举所有52张扑克牌要好得多,在Python中,我们有如下两种常见的工厂方法: 定义一个函数,该函数会创建所需类的对象. 定义一个类,该类有创建对象的方法.这是一个完整的工厂设计模式,正如设计模式书所描述的那样.在诸如Java这样的语言中,工厂类层次结构是必须的,因为该语言不支持独立的函数. 在Python中,类并不是必须的.只是当有相关的工厂非常复杂的时候才会显现出优势.Python的优势就是当一

深入解析Python中的集合类型操作符

(1)标准类型操作符(所有的集合类型) 成员关系 (in, not in)         就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价         等价/不等价被用于在相同或不同的集合之间做比较.两个集合相等是指,对每个集合而言,当且仅当其中一个集合中的每个成员同时也是另一个集合中的成员.也可以说每个集合必须是另一个集合的一个子集, 即s <= t 和s>= t 的值均为真(True),或(s <= t and s>

详细解析Python中的变量的数据类型

变量是只不过保留的内存位置用来存储值.这意味着,当创建一个变量,那么它在内存中保留一些空间. 根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中.因此,通过分配不同的数据类型的变量,你可以存储整数,小数或字符在这些变量中. 变量赋值: Python的变量不必显式地声明保留的存储器空间.当分配一个值给一个变量的声明将自动发生.等号(=)来赋值给变量. 操作数=操作符的左边是变量,操作数=操作符的右侧的名称在变量中存储的值.例如: #!/usr/bin/python cou

深入解析Python中的变量和赋值运算符

Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符. 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 等号(=)用来给变量赋值. 等号(=)运算符左边是一