跟老齐学Python之用Python计算
一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer。不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等。乃至于,有的人在口语中区分不开计算机和计算器。
那么,做为零基础学习这,也就从计算小学数学题目开始吧。因为从这里开始,数学的基础知识列为肯定过关了。
复习
还是先来重温一下伟大时刻,打印hello world.
打开电脑,让python idle运行起来,然后输入:
>>> print 'Hello, World' Hello, World
细心的看官,是否注意到,我在这里用的是单引号,上次用的是双引号。两者效果一样,也就是在这种情况下,单引号和双引号是一样的效果,一定要是成对出现的,不能一半是单引号,另外一半是双引号。
四则运算
按照下面要求,在ide中运行,看看得到的结果和用小学数学知识运算之后得到的结果是否一致
>>> 2+5 7 >>> 5-2 3 >>> 10/2 5 >>> 5*2 10 >>> 10/5+1 3 >>> 2*3-4 2
上面的运算中,分别涉及到了四个运算符号:加(+)、减(-)、乘(*)、除(/)
另外,我相信看官已经发现了一个重要的公理:
在计算机中,四则运算和小学数学中学习过的四则运算规则是一样的
要不说人是高等动物呢,自己发明的东西,一定要继承自己已经掌握的知识,别跟自己的历史过不去。伟大的科学家们,在当初设计计算机的时候就想到列为现在学习的需要了,一定不能让后世子孙再学新的运算规则,就用小学数学里面的好了。感谢那些科学家先驱者,泽被后世。
下面计算三个算术题,看看结果是什么
4 + 2 4.0 + 2 4.0 + 2.0
看官可能愤怒了,这么简单的题目,就不要劳驾计算机了,太浪费了。
别着急,还是要在ide中运算一下,然后看看结果,有没有不一样?要仔细观察哦。
>>> 4+2 6 >>> 4.0+2 6.0 >>> 4.0+2.0 6.0
不一样的地方是:第一个式子结果是6,后面两个是6.0。
现在我们就要引入两个数据类型:整数和浮点数
对这两个的定义,不用死记硬背,google一下。记住爱因斯坦说的那句话:书上有的我都不记忆(是这么的说?好像是,大概意思,反正我也不记忆)。后半句他没说,我补充一下:忘了就google。
定义1:类似4、-2、129486655、-988654、0这样形式的数,称之为整数
定义2:类似4.0、-2.0、2344.123、3.1415926这样形式的数,称之为浮点数
比较好理解,整数,就是小学学过的整数;浮点数,就是小数。如果整数写成小数形式,比如4写成4.0,也就变成了浮点数。
爱学习,就要有探索精神。看官在网上google一下整数,会发现还有另外一个词:长整数(型)。顾名思义,就是比较长的整数啦。在有的语言中,把这个做为单独一类区分开,但是,在python中,我们不用管这个了。只要是整数,就只是整数,不用区分长短(以前版本区分),因为区分没有什么意思,而且跟小学学过的数学知识不协调。
还有一个问题,需要向看官交代一下,眼前可能用不到,但是会总有一些人用这个来忽悠你,当他忽悠你的时候,下面的知识就用到了。
整数溢出问题
这里有一篇专门讨论这个问题的文章,推荐阅读:整数溢出
对于其它语言,整数溢出是必须正视的,但是,在python里面,看官就无忧愁了,原因就是python为我们解决了这个问题,请阅读拙文:大整数相乘
ok!看官可以在IDE中实验一下大整数相乘。
>>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566 152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L
看官是幸运的,python解忧愁,所以,选择学习python就是珍惜光阴了。
上面计算结果的数字最后有一个L,就表示这个数是一个长整数,不过,看官不用管这点,反正是python为我们搞定了。
在结束本节之前,有两个符号需要看官牢记(不记住也没关系,可以随时google,只不过记住后使用更方便)
整数,用int表示,来自单词:integer
浮点数,用float表示,就是单词:float
可以用一个命令:type(object)来检测一个数是什么类型。
>>> type(4) <type 'int'> #4是int,整数 >>> type(5.0) <type 'float'> #5.0是float,浮点数 type(988776544222112233445566778899887766554433221133344455566677788998776543222344556678) <type 'long'> #是长整数,也是一个整数
总结
python里的加减乘除按照小学数学规则执行
不用担心大整数问题,python会自动处理
type(object)是一个有用的东西