Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417350
  • 博文数量: 72
  • 博客积分: 2541
  • 博客等级: 少校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-20 16:08
文章分类

全部博文(72)

文章存档

2013年(13)

2009年(1)

2008年(7)

2007年(45)

2006年(6)

我的朋友

分类: Python/Ruby

2013-06-28 14:30:21

在绝大多数的情况下,常用算术运算符的功能和计算器的相同,比如说加、减、乘法等等。但是在整数除法里存在一个潜在的陷阱:

点击(此处)折叠或打开

  1. >>> 1/2
  2. 0
  3. >>> 2/4
  4. 0
  5. >>> 2/3
  6. 0
你会惊讶的发现,所有的结果都是0,发生了什么?这是因为:一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截取了,只留下整数部分。这个功能在某些时候非常有用,但是在大多数情况下,我们仅仅需要普通的除法。python下有两种解决方法:
1、使用实数(包含小数点的十进制数)而不是整数进行运算:

点击(此处)折叠或打开

  1. >>> 1.0/2.0
  2. 0.5
  3. >>> 2.0/4
  4. 0.5
  5. >>> 2/3.0
  6. 0.6666666666666666
  7. >>> 2/3.
  8. 0.6666666666666666
2、指定python只执行普通的除法,可以在程序前加上以下语句(注意:__future__前后是两个下划线):

点击(此处)折叠或打开

  1. >>> from __future__ import division


  2. >>> 1/2
  3. 0.5
  4. >>> 2/4
  5. 0.5
指定为普通除法后,python提供了另外一个实现整除的操作符——双斜线,就算是浮点数,使用双斜线也会执行整除:

点击(此处)折叠或打开

  1. >>> 2//3
  2. 0
  3. >>> 2/3
  4. 0.6666666666666666
  5. >>> 2.0//3
  6. 0.0

除了以上运算符外,另外还有两个非常有用的运算符:

取余(模除)运算符——x%y的结果为x除以y的余数:

点击(此处)折叠或打开

  1. >>> 10/3
  2. 3.3333333333333335
  3. >>> 10%3
  4. 1
  5. >>> 9/3
  6. 3.0
  7. >>> 9%3
  8. 0
  9. >>> 2.75%0.5
  10. 0.25

幂(乘方)运算符:


点击(此处)折叠或打开

  1. >>> 2 ** 3
  2. 8
  3. >>> -3 ** 2
  4. -9
  5. >>> (-3) ** 2
  6. 9
注意,幂运算符比取反的优先级要高,所以-3**2等同于-(3**2)。如果想计算(-3)**2,就需要显式说明。


阅读(1009) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~