Python数值类型中需要注意的一些细节汇总

南笙酒味 提交于 2019-11-26 22:33:35

一:Python表达式运算符的优先级如下图:

如果程序中有括号,那么就要先考虑括号,在括号运算的基础之上再去考虑优先级。

混合类型向上转换:

整数与浮点数进行混合运算,例如你把恶一个整数和一个浮点数相加:40 + 3.14  请问相加的结果是什么呢?是整数类型还是浮点数类型呢?

答案其实很简单,在混合类型的表达式中,Python首先将被操作的对象 转换成其中最复杂的操作数的类型,然后再对相同的操作数进行数学运算。

Python中划分数值类型复杂度是这样的:整数比浮点数简单,浮点数比复数简单,故而上述例子中,一个整数40与浮点数3.14运算时,整数首先升级为浮点数,

之后进行浮点数的运算得到结果:

40 + 3.14

43.14

二:变量与基础表达式:

1-变量在第一次赋值时被创建。

2-变量在表达式中使用时,会被替换成它们的值。

3-变量使用之前必须要被赋值,不赋值不执行。

三:浮点数的比较

1 >>> 1.1 + 2.2 == 3.3
2 False 
3 >>> 1.1 + 2.2 3.0000000003
4 >>> int(1.2 + 2.2) == int(3.3) 
5 True
View Code

浮点数因为有限的比特位数,而不能精确地表示某些值得事实,所以在浮点数的比较中,我们需要强制转化一下,确定精度比较。

四:除法

X/Y -真除法       X//Y-向下取整除法

 python3.x中,执行真除法/时,不管操作数的类型,都要返回一个包含任何小数部分的浮点数作为结果。执行//向下取整除法,它截断余数并针对整数操作数返回一个整数,

如果操作数有任何一个浮点数类型,就返回一个浮点数。

#python3.7>>> 10 / 4
2.5
>>> 10 / 4.0
2.5
>>> 10 / 4
2
>>> 10 / 4.0
2.0

python2.x中,执行真除法/时,如果两个操作数都是整数的话,执行截断的整数除法,否则执行浮点数除法。执行//向下取整除法时,对于整数进行截断除法,对于浮点数进行浮点除法。

#Python2.7
>>> 10 / 4
2
>>> 10 / 4.0
2.5
>>> 10 // 4
2
>>> 10 // 4.0
2.0

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!