一、类型的动态确定
print 3.0 + 2.0 + 1.0- 5.0 + 4.0 % 2.0 - 1.0 / 4.0 + 6.0
输出的结果是6.75
print
3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
输出的结果是7
print
3.0+ 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
输出的结果是7.0
print 3+ 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6.0
输出的结果是7.0
最关键的是:
print 3.0 + 2.0 + 1.0- 5.0 + 4.0 % 2.0 - 1 / 4 + 6.0
输出的结果也是7.0.
说明:类型是动态确定的。如果有浮点数,就会确定为浮点数的类型。
对上述表达式的处理过程是:
首先根据各个运算符将各个表达式表示为子表达式
在计算的时候,如果有浮点类型,就先将操作数表示为浮点类型,然后计算的结果也是浮点类型。
上述输出结果的不同就是:
1/4得到的是0.25。如果保存为整数类型就是0。
在
print 3.0 + 2.0 + 1.0- 5.0 + 4.0 % 2.0 - 1 / 4 + 6.0
中
虽然,计算的浮点数的类型。但是1 / 4计算的0.25要先根据操作数的类型,将结果保存为0。然后由于后续运算的其它操作数比如6.0为浮点数,故而再将0表示为浮点类型0。
而1.0/4.0其就是,直接将结果保存为浮点数0.25(根据操作数类型判定)
因此:两者的结果,一个是7.0. 另外一个是6.75