python中 // 和 / 和 % 用法及区别
每次都会搞混淆,这次整理一下加深记忆。
在python的语法中, // 和 / 和 % 均表示的做除法运算,但又有一些区别。
单杠除:/
只是一种常规除法,平常除法是什么结果就是什么结果,如:
5 / 2 = 2.5
# 浮点数除法,返回浮点结果
注:
#基于 python3
# 1. 即使是两个整数恰好整除,结果也是浮点数。
# 2. 两个整数没能整除,返回浮点数
10 / 3
> 3.3333333333333335
# 3. 两个浮点数相除,返回浮点数
1.0 / 2.0
> 0.5
# 4. 两个数的其中一个是浮点数,返回浮点数
3 / 2.0
> 1.5
# 5 . 两个整数恰好整除,返回浮点数
9 / 3
> 3.0
#基于python2
# python2版本整数除法采用的是 floor 的方式,也称为地板除法。
# 1. 两个整数相除,返回整数
3 / 2
> 1
# 2. 两个数的其中一个是浮点数,返回浮点数
3 / 2.0
> 1.5
# 3. 两个整数恰好相除,返回整数
6 / 2
> 3
双杠除://
地板除,整数只取除完之后的整数部分。如:
7 // 2 = 3 #(7 ÷ 2 = 3.5)
5 // 3 = 1 #(5 ÷ 3 = 1.6666666666666667)
# 除法结果向下取整
注:
# 1. 两个整数相除,返回整数
3 // 2
> 1
# 2. 两个数的区中一个是浮点数,返回浮点数
3 // 2.0
> 1.0
# 3. 负数除以正整数是负数自己本身
-1 // 2.0
> -1
# 4. 负数除以负整数是0
-1//-4
> 0
取余除:%
取余数操作,除开被除数的倍数,余下几就得几。如:
4 % 2 = 0 (4 - 2*2 = 0)
7 % 3 = 1 (7 - 3*2 = 1)
13 % 5 = 3 (13 - 5*2 = 3)
# 返回除法的余数
注:
# 1. 两个整数相除,返回整数
5 % 2
> 1
# 2. 两个整数恰好相除,返回0
6 % 3
> 0
总结
非常小的细节:
下面在看下python的地板除和除有什么区别吗? // 和 /
100/2 = 50.0
100//2 = 50