我们常常需要在不同的数据类型进行转换。常见的转换主要是以整数为中心,我们来看看整数和其他三种类型的转换。
先看看如何从浮点数转换为整数。一般有两种基本转换:一种称之为取整,即只保留小数的整数位,不自动四舍五入,此时可以使用int函数进行。
num = 1.65
print(int(num))
输出为:1。当然,取整也有不同的形式,比如也可以向上取整,1.65取整为2。这时就需要利用ceil函数,ceil是天花板的意思,很形象,即大于该浮点数的最小整数。
import math
num = 1.05
print(math.ceil(num))
输出为:2。这是我们第一次使用其他模块里面的函数。在Python中,除了标准的各种现成函数外,我们还可以通过导入其他的模块,比如这里的math模块(数学计算模块),获取更多的函数功能,使用方法就是在函数名称前加上导入模块的名称。
但是,如果记不太清楚了或者书写太麻烦怎么办?关于如何在PyCharm自动导入库,这里介绍PyCharm的一个重要快捷键,即“Alt+Enter”,在代码中如果缺乏对必要模块的导入,可以在PyCharm编辑环境中相关代码处点击,并按下此快捷键,系统会提示:
选择“Import this name(导入这个名称)”即可进一步选择所需的模块,再次回车确定,即可自动完成导入语句的书写。
第二种称之为四舍五入,可以使用round函数进行:
num = 1.65
print(round(num))
输出为:2。
我们来看个奇怪的问题:
print(round(1.65, 1))
print(round(1.75, 1))
输出为:
1.6
1.8
这里需要注意一个细节问题,四舍五入在Python中采取了“四舍六入五成双”的规则,可以实现更为平衡的进位设计,五成双的意思是高位为单数则进1,高位为双数则不进位。所以产生上述效果。
我们再看看从整数转换为浮点数。这个更为简单。
num = 2
print(float(num))
输出为:2.0。
float函数不仅可以将整数转换为浮点数,对于任何可以转换过来的其他类型,如字符串也可以转换:
num = '3.14'
print(float(num))
输出为:3.14。
在数值计算中,常常会将整数和浮点数一起混用,此时Python默认自动将整数转换为浮点数。
r = 2
pi = 3.14
print(r * r * pi)
输出为:12.56,可以用于表达圆面积的计算。
更为精确的pi可以直接使用math模块的pi常量值:
import math
r = 2
print(r * r * math.pi)
输出为:12.566370614359172。输出结果的数值精度更高。
其实布尔值在存储上也是一种整数,假就是0,真就是非0,通常以1表示。我们看两个练习:
flag = 1 > 2
print(flag + 1)
输出为:1。
num = 1
print(num + True)
输出为:2。
可见,布尔型和整数确实可以混用。当然我们不建议大家这样做,不过在以后的代码中,遇到真假判断时,记得0就是假。表示判断条件不满足,不是0则表示真,但是反过来,假对应0,而真则只对应1。