Lesson 6 & 7
Experiments in python2
算术运算是编程中非常基础的部分,那么python中是怎么实现的呢?python2和python3在这个方面又有什么样的区别?
首先介绍的是算术运算的基础:
1 | # Let's begin. |
用long强制转换3.14这个float类型的数,得到的并不是同一个数。
1 | # similarly |
同样的,复数也是包含所有浮点数的。
1 | complex(1.721+0j) |
float(1.721+0j)
TypeErrorTraceback (most recent call last)
<ipython-input-9-00c7ec0f6750> in <module>()
----> 1 float(1.721+0j)
TypeError: can't convert complex to float
现在,我们可以得出结论,ints<longs<floats<complex,这在python算术运算中,也起到决定性的作用。在python中,如果是两个类型不同的数做运算,结果是什么类型呢?我们做个实验一探究竟:
1 | a = 6 # int |
总结一下,在python中算术运算会以wider number为基准,运算结果以wider number的类型为准。在除法运算中,有两个注意点:
- 如果分数线两侧都是int型,那么运算得到的是整除后quotient部分,想得到余数,使用取余%操作得到,先得到准确结果,可以把分母或者分子做float类型的强制转换。
- 分母不可以为0。
Differences in python3
1 | 16 /5 |
算术运算在python3中就这一点不同,分数线两边默认是float类型,如果想要得到整除结果,使用一下的运算符号:
1 | # no differnce |
Youtube source:
https://www.youtube.com/watch?v=bY6m6_IIN94&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-