在Python中,a//b是取a除以b的结果的整数部分,int(a/b)是算出a/b的结果(浮点数)后,再舍去小数部分。因为a/b的结果是浮点数,会有精度误差。a//b的算法和int(a/b)的算法不一样,a//b没有转换为浮点数步骤,所以a//b不会有误差,而int(a/b)会。
一、Python的a//b和int(a/b)的区别
在Python中,a//b是取a除以b的结果的整数部分,int(a/b)是算出a/b的结果(浮点数)后,再舍去小数部分。因为a/b的结果是浮点数,会有精度误差。a//b的算法和int(a/b)的算法不一样,a//b没有转换为浮点数步骤,所以a//b不会有误差,而int(a/b)会。
整除号://
整除运算,结果向负无穷方向去,取最近的整数
浮点数除法:/
返回float型
使用强制类型转换取整数:int()
结果向0靠近,取最近的整数
print(13/2) # 6.5
print(13//2) # 6
print(int(6.5)) # 6
print(-13/2) # -6.5
print(-13//2) # -7
print(int(-6.5)) # -6
延伸阅读:
二、Python算术运算符
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
+ | 加 – 两个对象相加 | a + b 输出结果 30 |
– | 减 – 得到负数或是一个数减去另一个数 | a – b 输出结果 -10 |
* | 乘 – 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 – x除以y | b / a 输出结果 2 |
% | 取模 – 返回除法的余数 | b % a 输出结果 0 |
** | 幂 – 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 – 返回商的整数部分(向下取整) | >>> 9//2 4 >>> -9//2 -5 |
以下实例演示了Python所有算术运算符的操作:
实例(Python 2.0+)
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 c = a + b print “1 – c 的值为:”, c c = a – b print “2 – c 的值为:”, c c = a * b print “3 – c 的值为:”, c c = a / b print “4 – c 的值为:”, c c = a % b print “5 – c 的值为:”, c # 修改变量 a 、b 、c a = 2 b = 3 c = a**b print “6 – c 的值为:”, c a = 10 b = 5 c = a//b print “7 – c 的值为:”, c
运行实例 »
以上实例输出结果:
1 – c 的值为: 31
2 – c 的值为: 11
3 – c 的值为: 210
4 – c 的值为: 2
5 – c 的值为: 1
6 – c 的值为: 8
7 – c 的值为: 2