5/2结果为什么是2不是2.5?什么原理呢?
跟语言的类型系统设计有关。Java、C、C++这类语言中都是整数在自动类型提升的低层次上,要遇到显式的浮点数据才会将整数提升为浮点;整数与整数运算不会触发类型提升,自然得到的还是整数。Python的设计就不一样,并不靠类型提升决定表达式类型,而是表达式本身自带一套规则。某种意义上,这是C这种弱类型语言和Python这种强类型语言的区别。
要记住,两个整数相除是整除,所以5/2是2,5.0/2才是2.5