首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》第4章

关灯直达底部

测试题

1. int 函数总是向下取整(这个数左边的最大整数)。

2. 在我们的温度转换程序中,可以这样做吗?

cel = float(5 / 9 * (fahr - 32))cel = 5 / 9 * float(fahr - 32)  

试试看,会发生什么:

>>> fahr = 75>>> cel = float(5 / 9 * (fahr - 32))>>> print cel0.0  

为什么不能正常工作?

要记住,括号里的一切会先完成。所以它会先这样:

75 - 32 = 43  

然后再这样做:

5 / 9 = 0  

因为它会从左到右计算,所以先完成 5/9 。因为 5 和 9 都是整数,所以 Python 会完成整除,将答案向下取整。由于这个答案小于 1,所以会取整为 0。然后得到:

0 * 43 = 0  

接下来:

float(0) = 0.0  

执行到 float 时,已经太晚了——答案已经是 0 了!第二个公式也一样。

3. 可以“骗过”int,让它四舍五入而不是向下取整,只需将传入 int 的数加 0.5。

右面是一个例子(交互模式中

>>> a = 13.2>>> roundoff = int(a + 0.5)>>> roundoff 13>>> b = 13.7>>> roundoff = int(b + 0.5)>>> b 14  

如果原先的数小于 13.5,int 会得到一个小于 14 的数,这会向下取整为 13。

如果原来的数大于或者等于 13.5,int 会得到一个等于或者大于 14 的数,这就会向下取整为 14。

动手试一试

1. 可以使用 float 将字符串转换为小数:

>>> a = float('12.34')>>> print a12.34  

不过我们怎么能知道这是数而不是字符串呢?下面来检查类型:

>>> type(a)<type 'float'>  

2. 可以使用 int 把小数转换为整数:

>>> print int(56.78)56  

结果会向下取整。

3. 可以使用 int 把字符串转换为整数:

>>> a = int('75')>>> print a75>>> type(a)<type 'int'>