数字的基本操作是加、减、乘、除四则运算。例如下面的脚本:
结果输出:
12
8
20
5.0
从这个例子我们可以看出,四则运算跟我们想像的差不多,很接近C++语言。但除法有点特殊,结果是5.0而不是5。这是因为python在进行除法运算时,默认会作带小数的除法运算,即使被除数和除数都是整数。
那如果一定需要整除该怎么办呢?python还提供了专门的整除运算符//,例如:
结果输出:
5
3
3.0
从这个例子可以看出,//运算符相当于取/运算符结果的整数部分,直接把小数部分给舍掉。但是当被除数或除数带小数时,//的结果也带小数部分,这个时候与/相同。
当然我们还有一种方法,利用int()
做类型转换,把小数转成整数。如:
我们这里讲的四则运算符+ - * /本质上是运算符重载。怎么讲?我们知道数字是对象,两个对象进行加减乘除必然要通过运算符重载来实现。
我们来看两个例子。
结果输出:
9323424
9323168
9323488
这个例子中,我们分别打印了a, b, c三个对象的ID,三个ID均不相同。
结果输出:
9323424
9323488
这个例子,我们在加法前后打印了两次对象a的ID,两次ID并不相同。
这是因为python语言里的数字对象一但初始化,就不能更改了,类似C++语言的const常量。当执行c = a + b时,大致经过下面这几步:
取出对象a的值,取出对象b的值
两者相加,并赋值给一个临时对象
把c指向这个新的临时对象
上面的例子一可用下图来表示:
上面的例子二可用下图来表示:
由于数字对象a是不可修改的,当a = a + b时,最终结果a其实是指向这个新创建的临时对象,而不是修改a指向的对象本身。
我们再次强调python是面向对象的编程语言,所以在基础语法学习阶段我们会一直传递对象的思想。只有理解了一切皆对象,才能更熟练地使用python来编程。这一点与学习perl的方法完全不同,我们需要尽快调整过来。
下一次,我们学习数据类型"字符串"的操作方法,这是非常重要的部分哦!