For I am not ashamed of the gospel; it is the power of God for salvation to everyone who has faith, to the Jew first and also to the Greek. For in it the righteousness of God is revealed through faith for faith; s it is written,"The one who is righteous will live by faith"
数和四则运算
一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer。不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等。乃至于,有的人在口语中区分不开计算机和计算器。
有一篇名为《计算机前世》的文章,这样讲到:
还是先来看看计算机(computer)这个词是怎么来的。 英文学得好的小伙伴看到这货,computer 第一反应好像是:“compute-er”是吧,应该是个什么样的人就对了,就是啊,“做计算的人”。 叮咚!恭喜你答对了。 最先被命名为 computer 的确实是人。也就是说,电子计算机(与早期的机械计算机)被给予这个名字是因为他们执行的是此前被分配到人的工作。 “计算机”原来是工作岗位,它被用来定义一个工种,其任务是执行计算诸如导航表,潮汐图表,天文历书和行星的位置要求的重复计算。从事这个工作的人就是 computer,而且大多是女神!
原文还附有如下图片:
所以,以后要用第三人称来称呼computer,请用she(她)。现在你明白为什么程序员中那么多“他”了吧,因为computer是“她”。
数
在Python中,对数的规定比较简单,基本在小学数学水平即可理解。
那么,做为零基础学习这,也就从计算小学数学题目开始吧。因为从这里开始,数学的基础知识列位肯定过关了。
>>> 3
3
>>> 3333333333333333333333333333333333333333
3333333333333333333333333333333333333333L
>>> 3.222222
3.222222
上面显示的是在交互模式下,如果输入3,就显示了3,这样的数称为整数,这个称呼和小学数学一样。
如果输入一个比较大的数,第二个,那么多个3组成的一个整数,在Python中称之为长整数。为了表示某个数是长整数,Python会在其末尾显示一个L。其实,现在的Python已经能够自动将输入的很大的整数视为长整数了。你不必在这方面进行区别。
第三个,在数学里面称为小数,这里你依然可以这么称呼,不过就像很多编程语言一样,习惯称之为“浮点数”。至于这个名称的由来,也是有点说道的,有兴趣可以google.
上述举例中,可以说都是无符号(或者说是非负数),如果要表示负数,跟数学中的表示方法一样,前面填上负号即可。
值得注意的是,我们这里说的都是十进制的数。
除了十进制,还有二进制、八进制、十六进制都是在编程中可能用到的,当然用六十进制的时候就比较少了(其实时间记录方式就是典型的六十进制)。
具体每个数字,在Python中都是一个对象,比如前面输入的3,就是一个对象。每个对象,在内存中都有自己的一个地址,这个就是它的身份。
>>> id(3)
140574872
>>> id(3.222222)
140612356
>>> id(3.0)
140612356
>>>
用内建函数id()可以查看每个对象的内存地址,即身份。
内建函数,英文为built-in Function,读者根据名字也能猜个八九不离十了。不错,就是Python中已经定义好的内部函数。
以上三个不同的数字,是三个不同的对象,具有三个不同的内存地址。特别要注意,在数学上,3和3.0是相等的,但是在这里,它们是不同的对象。 用id()得到的内存地址,是只读的,不能修改。
了解了“身份”,再来看“类型”,也有一个内建函数供使用type()。
>>> type(3)
<type 'int'>
>>> type(3.0)
<type 'float'>
>>> type(3.222222)
<type 'float'>
用内建函数能够查看对象的类型。
至于对象的值,在这里就是对象本身了。
看来对象也不难理解。请保持自信,继续。
变量
仅仅写出3、4、5是远远不够的,在编程语言中,经常要用到“变量”和“数”(在Python中严格来讲是对象)建立一个对应关系。例如:
>>> x = 5
>>> x
5
>>> x = 6
>>> x
6
在这个例子中,x = 5
就是在变量x和数
5之间建立了对应关系,接着又建立了
x与
6`之间的对应关系。我们可以看到,x先“是”5,后来“是”6。
在Python中,有这样一句话是非常重要的:对象有类型,变量无类型。怎么理解呢?
首先,5、6都是整数,Python中为它们取了一个名字,叫做“整数”类型的对象(或者数据),也可以说对象(或数据)类型是整数型,用int表示。
当我们在Python中写入了5、6,computer姑娘就自动在她的内存中某个地方给我们建立了这两个对象(对象的定义后面会讲,这里你先用着,逐渐就明晰含义了),就好比建造了两个雕塑,一个是形状似5,一个形状似6,这就两个对象,这两个对象的类型就是int.
那个x呢?就好比是一个标签,当x = 5
时,就是将x这个标签拴在了5上了,通过这个x,就顺延看到了5,于是在交互模式中,>>> x
输出的结果就是5,给人的感觉似乎是x就是5,事实是x这个标签贴在5上面。同样的道理,当x = 6
时,标签就换位置了,贴到6上面。
所以,作用等同于标签的变量x
没有类型之说,它不仅可以贴在整数类型的对象上,还能贴在其它类型的对象上,比如后面会介绍到的str(字符串)类型的对象等等。
这是Python的一个重要特征——对象有类型,变量无类型。
四则运算
按照下面要求,在交互模式中运行,看看得到的结果和用小学数学知识运算之后得到的结果是否一致
>>> 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
看官可能愤怒了,这么简单的题目,就不要劳驾计算机了,太浪费了。
别着急,还是要运算一下,然后看看结果,有没有不一样?要仔细观察哦。
>>> 4+2
6
>>> 4.0+2
6.0
>>> 4.0+2.0
6.0
不一样的地方是:第一个式子结果是6,这是一个整数;后面两个是6.0,这是浮点数。
定义1:类似4、-2、129486655、-988654、0这样形式的数,称之为整数 定义2:类似4.0、-2.0、2344.123、3.1415926这样形式的数,称之为浮点数
对这两个的定义,不用死记硬背,google一下。记住爱因斯坦说的那句话:书上有的我都不记忆(是这么的说?好像是,大概意思,反正我也不记忆)。后半句他没说,我补充一下:忘了就google。
似乎计算机做一些四则运算是不在话下的,但是,有一个问题请你务必注意:在数学中,整数是可以无限大的,但是在计算机中,整数不能无限大。为什么呢?(我推荐你去google,其实计算机的基本知识中肯定学习过了。)因此,就会有某种情况出现,就是参与运算的数或者运算结果超过了计算机中最大的数了,这种问题称之为“整数溢出问题”。
整数溢出问题
这里有一篇专门讨论这个问题的文章,推荐阅读:整数溢出
对于其它语言,整数溢出是必须正视的,但是,在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'> #是长整数,也是一个整数