Python 中的整数和浮点数
python支持对整数和浮点数直接进行四则混合运算。运算规则和数学上的四则运算完全一致。
使用括号可以提升优先级,但只能使用小括号。括号可以多层嵌套。
Python的整数和整数运算结果是整数。和浮点数运算结果是浮点数。
纯整数的运算的结果是精确的。而浮点数运算的结果不一定精确。因为计算机内存再大,也无法精确表达无线循环小数,比如0.1换成二进制表示就是无线循环的。
小知识点:
如何用二进制表示小数:
比如 : 0.25
第一步: 0.0 取整数部分使用二进制转化。取小数部分乘2 0.25*2 = 0.5,0.5取0.5整数0部分作为 二进制小数的第一位。
第二步 : 0.5 取小数部分乘2 0.5 * 2 = 1 。 取整数部分1 作为二进制小数的第二位小数部分 即0.01.
第三步: 没有小数部分,停止。
所以 0.25 转化为二进制表示为 0.01
python的整数除法,即使有余数,结果仍然是整数。只保留整数部分,不进行四舍五入,余数直接扔掉。要想得到余数需要使用求余的计算。
比如 :
10%4 #结果为0.5
如果需要计算精确结果,就需要至少存在一个浮点数。
比如:
11.0/4 #结果为2.75
Python中的布尔类型
布尔类型只有true和false两种值。
python中的布尔运算包括:and(与)、or(或)、not(非)。
python可以和其他的数据类型做布尔运算。
比如:
a=True
print a and ‘a=T’ or ‘a=F’ #输出结果是 a=T
计算结果不是布尔类型,而是字符串 a=T 。
因为python把0、空字符串‘’ 和 none 看成false,其他数值和非空字符串都看成True。所以:
True and ‘a=T’ 计算结果是‘a=T’。
继续计算‘a=T’ or ‘a=F’ 计算结果还是‘a=T’。
布尔类型和其他类型数据运算分析。
and运算是串联电路。
1、第一个数据是True(不管是布尔类型的true,还是其他数据类型的true),这时运算结果一定是第二个数据。
比如:
print True and ‘a’ #输出‘a’。
print ‘a’ and True #输出True。
2、第一个数据是False(不管是布尔类型的False,还是其他类型的false),这是一个断路电路,这时运算结果一定是第一个数据。
比如:
print False and 0 #输出为:False。
print 0 and False #输出为:0。
or运算是并联电路。
1、当第一个数据为True的时候(不管是布尔类型的True,还是其他数据类型的True),运算结果一定是第一个数据。
比如:
print ‘a=F’ or True #输出为 ‘a=F’
print ‘a=F’ or False #输出为 False
2、当第一个数据为false时(不管是布尔类型的False,还是其他类型的false),运算结果一定是第二个数据。
比如:
print false or 0 # 输出为 0。
print 0 or True #输出为True。
3、not运算的结果一定是布尔类型。
python解释器在做布尔运算时,运算结果是起决定性作用的那个数据。