在绝大多数的情况下,常用算术运算符的功能和计算器的相同,比如说加、减、乘法等等。但是在整数除法里存在一个潜在的陷阱:
-
>>> 1/2
-
0
-
>>> 2/4
-
0
-
>>> 2/3
-
0
你会惊讶的发现,所有的结果都是0,发生了什么?这是因为:一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截取了,只留下整数部分。这个功能在某些时候非常有用,但是在大多数情况下,我们仅仅需要普通的除法。python下有两种解决方法:
1、使用实数(包含小数点的十进制数)而不是整数进行运算:
-
>>> 1.0/2.0
-
0.5
-
>>> 2.0/4
-
0.5
-
>>> 2/3.0
-
0.6666666666666666
-
>>> 2/3.
-
0.6666666666666666
2、指定python只执行普通的除法,可以在程序前加上以下语句(注意:__future__前后是两个下划线):
-
>>> from __future__ import division
-
-
-
>>> 1/2
-
0.5
-
>>> 2/4
-
0.5
指定为普通除法后,python提供了另外一个实现整除的操作符——双斜线,就算是浮点数,使用双斜线也会执行整除:
-
>>> 2//3
-
0
-
>>> 2/3
-
0.6666666666666666
-
>>> 2.0//3
-
0.0
除了以上运算符外,另外还有两个非常有用的运算符:
取余(模除)运算符——x%y的结果为x除以y的余数:
-
>>> 10/3
-
3.3333333333333335
-
>>> 10%3
-
1
-
>>> 9/3
-
3.0
-
>>> 9%3
-
0
-
>>> 2.75%0.5
-
0.25
幂(乘方)运算符:
-
>>> 2 ** 3
-
8
-
>>> -3 ** 2
-
-9
-
>>> (-3) ** 2
-
9
注意,幂运算符比取反的优先级要高,所以-3**2等同于-(3**2)。如果想计算(-3)**2,就需要显式说明。
阅读(1009) | 评论(0) | 转发(0) |