|
2 | 2 |
|
3 | 3 | #数和四则运算 |
4 | 4 |
|
5 | | -一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer。不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等。乃至于,有的人在口语中区分不开计算机和计算器。 |
| 5 | +计算机,原本是用来计算的。现在更多人把她叫做电脑,这两个词都是指computer。不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等。乃至于,有的人在口语中区分不开计算机和计算器。 |
6 | 6 |
|
7 | 7 | 有一篇名为[《计算机前世》](http://www.flickering.cn/%E5%85%AB%E5%8D%A6%E5%A4%A9%E5%9C%B0/2015/02/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%89%8D%E4%B8%96%E7%AF%87%EF%BC%88%E4%B8%80%EF%BC%8C%E5%A7%91%E5%A8%98%E8%AE%A1%E7%AE%97%E6%9C%BA%EF%BC%89/)的文章,这样讲到: |
8 | 8 |
|
|
33 | 33 | >>> 3.222222 |
34 | 34 | 3.222222 |
35 | 35 |
|
36 | | -上面显示的是在交互模式下,如果输入3,就显示了3,这样的数称为整数,这个称呼和小学数学一样。 |
| 36 | +上面显示的是在交互模式下,如果输入3,就显示了3,这样的数称为整数,用int表示。这个称呼和小学数学一样。 |
37 | 37 |
|
38 | 38 | 如果输入一个比较大的数,第二个,那么多个3组成的一个整数,在Python中称之为长整数。为了表示某个数是长整数,Python会在其末尾显示一个L。其实,现在的Python已经能够自动将输入的很大的整数视为长整数了。你不必在这方面进行区别。 |
39 | 39 |
|
40 | | -第三个,在数学里面称为小数,这里你依然可以这么称呼,不过就像很多编程语言一样,习惯称之为“浮点数”。 |
| 40 | +这个功能重要,在于Python能自动处理大整数问题,不用担心溢出。什么是“溢出”,随后说明,或者在这里去Google它。 |
| 41 | + |
| 42 | +第三个,在数学里面称为小数,这里你依然可以这么称呼,不过就像很多编程语言一样,习惯称之为“浮点数”,用float表示。 |
41 | 43 |
|
42 | 44 | 注意,刚才我提到了小数,其实把小数称之为“浮点数”,这种说法并不准确。为此,“知乎”上有专门的解释,请阅读(原文地址:[http://www.zhihu.com/question/19848808/answer/22219209](http://www.zhihu.com/question/19848808/answer/22219209): |
43 | 45 |
|
|
57 | 59 |
|
58 | 60 | 除了十进制,还有二进制、八进制、十六进制都是在编程中可能用到的,当然用六十进制的时候就比较少了(其实时间记录方式就是典型的六十进制)。 |
59 | 61 |
|
60 | | -具体每个数字,在Python中都是一个对象,比如前面输入的3,就是一个对象。每个对象,在内存中都有自己的一个地址,这个就是它的身份。 |
| 62 | +进制问题此处不是重点,建议读者自行查找资料阅读。 |
| 63 | + |
| 64 | +在Python中,每个数字都是真实存在的,相对于我们——人类——来讲,它真实存在,它就是对象(object)。 |
| 65 | + |
| 66 | +对象是一个深刻的术语,不管你是否理解,我先这么说,你先听着、用着,逐渐逐渐,就理解深入了。 |
| 67 | + |
| 68 | +还要注意,此对象非彼对象,但是学习Python或许在帮助你解决彼对象的时候有帮助。 |
| 69 | + |
| 70 | +比如整数3,就是一个对象。 |
| 71 | + |
| 72 | +每个对象,在内存中都有自己的一个地址,这个就是它的身份。 |
61 | 73 |
|
62 | 74 | >>> id(3) |
63 | 75 | 140574872 |
|
72 | 84 | >内建函数,英文为built-in Function,读者根据名字也能猜个八九不离十了。不错,就是Python中已经定义好的内部函数。 |
73 | 85 |
|
74 | 86 | 以上三个不同的数字,是三个不同的对象,具有三个不同的内存地址。特别要注意,在数学上,3和3.0是相等的,但是在这里,它们是不同的对象。 |
| 87 | + |
75 | 88 | 用id()得到的内存地址,是只读的,不能修改。 |
76 | 89 |
|
77 | 90 | 了解了“身份”,再来看“类型”,也有一个内建函数供使用type()。 |
|
83 | 96 | >>> type(3.222222) |
84 | 97 | <type 'float'> |
85 | 98 |
|
86 | | -用内建函数能够查看对象的类型。<type ‘int’>,说明3是整数类型(Interger);<type ‘float’>则告诉我们那个对象是浮点型(Floating point real number)。与id()的结果类似,type()得到的结果也是只读的。 |
| 99 | +用内建函数能够查看对象的类型。 |
| 100 | + |
| 101 | +- <type ‘int’>,说明3是整数类型(Interger); |
| 102 | +- <type ‘float’>则告诉我们那个对象是浮点型(Floating point real number)。 |
| 103 | + |
| 104 | +与id()的结果类似,type()得到的结果也是只读的。 |
87 | 105 |
|
88 | 106 | 至于对象的值,在这里就是对象本身了。 |
89 | 107 |
|
|
100 | 118 | >>> x |
101 | 119 | 6 |
102 | 120 |
|
103 | | -在这个例子中,`x = 5`就是在变量`x和数`5`之间建立了对应关系,接着又建立了`x`与`6`之间的对应关系。我们可以看到,x先“是”5,后来“是”6。 |
| 121 | +在这个例子中,`x = 5`就是在变量`x和数`5`之间建立了对应关系,接着又建立了`x`与`6`之间的对应关系。 |
104 | 122 |
|
105 | | -在Python中,有这样一句话是非常重要的:**对象有类型,变量无类型**。怎么理解呢? |
| 123 | +我们可以看到,x先“是”5,后来“是”6。 |
| 124 | + |
| 125 | +在Python中,有这样一句话是非常重要的:**对象有类型,变量无类型**。 |
| 126 | + |
| 127 | +怎么理解呢? |
106 | 128 |
|
107 | 129 | 首先,5、6都是整数,Python中为它们取了一个名字,叫做“整数”类型的对象(或者数据),也可以说对象(或数据)类型是整数型,用int表示。 |
108 | 130 |
|
109 | | -当我们在Python中写入了5、6,computer姑娘就自动在她的内存中某个地方给我们建立了这两个对象(对象的定义后面会讲,这里你先用着,逐渐就明晰含义了),就好比建造了两个雕塑,一个是形状似5,一个形状似6,这就两个对象,这两个对象的类型就是int. |
| 131 | +当我们在Python中写入了5、6,computer姑娘就自动在她的内存中某个地方给我们建立了这两个对象,就好比建造了两个雕塑,一个是形状似5,一个形状似6,这就两个对象,这两个对象的类型就是int. |
110 | 132 |
|
111 | 133 | 那个x呢?就好比是一个标签,当`x = 5`时,就是将x这个标签拴在了5上了,通过这个x,就顺延看到了5,于是在交互模式中,`>>> x`输出的结果就是5,给人的感觉似乎是x就是5,事实是x这个标签贴在5上面。同样的道理,当`x = 6`时,标签就换位置了,贴到6上面。 |
112 | 134 |
|
113 | 135 | 所以,作用等同于标签的变量`x`没有类型之说,它不仅可以贴在整数类型的对象上,还能贴在其它类型的对象上,比如后面会介绍到的str(字符串)类型的对象等等。 |
114 | 136 |
|
115 | 137 | 这是Python的一个重要特征——**对象有类型,变量无类型**。 |
116 | 138 |
|
| 139 | +理解否?如果没有理解,也不要紧张,继续学习,“发展是硬道理”,在发展中解决问题。 |
| 140 | + |
| 141 | +上面的知识,可以用来计算。 |
| 142 | + |
117 | 143 | ##四则运算 |
118 | 144 |
|
119 | 145 | 按照下面要求,在交互模式中运行,看看得到的结果和用小学数学知识运算之后得到的结果是否一致 |
|
133 | 159 |
|
134 | 160 | 上面的运算中,分别涉及到了四个运算符号:加(+)、减(-)、乘(*)、除(/) |
135 | 161 |
|
136 | | -另外,我相信看官已经发现了一个重要的公理: |
| 162 | +另外,我相信读者已经发现了一个重要的公理: |
137 | 163 |
|
138 | 164 | **在计算机中,四则运算和数学中学习过的四则运算规则是一样的** |
139 | 165 |
|
|
145 | 171 | - 4.0 + 2 |
146 | 172 | - 4.0 + 2.0 |
147 | 173 |
|
148 | | -看官可能愤怒了,这么简单的题目,就不要劳驾计算机了,太浪费了。 |
| 174 | +可能愤怒了,这么简单的题目,就不要劳驾计算机了,太浪费了。 |
149 | 175 |
|
150 | 176 | 别着急,还是要运算一下,然后看看结果,有没有不一样?要仔细观察哦。 |
151 | 177 |
|
|
156 | 182 | >>> 4.0+2.0 |
157 | 183 | 6.0 |
158 | 184 |
|
159 | | -不一样的地方是:第一个式子结果是6,这是一个整数;后面两个是6.0,这是浮点数。 |
| 185 | +观察能力运用到这里,在物理课堂上学的一点不浪费。 |
| 186 | + |
| 187 | +找出不一样的地方。第一个式子结果是6,这是一个整数;后面两个是6.0,这是浮点数。这意味着什么,你可以继续试验,看看能不能总结出什么规律。后面会用到。 |
160 | 188 |
|
161 | | -似乎计算机做一些四则运算是不在话下的,但是,有一个问题请你务必注意:在数学中,整数是可以无限大的,但是在计算机中,整数不能无限大。为什么呢?(我推荐你去google,其实计算机的基本知识中肯定学习过了。)因此,就会有某种情况出现,就是参与运算的数或者运算结果超过了计算机中最大的数了,这种问题称之为“整数溢出问题”。 |
| 189 | +似乎计算机做一些四则运算是不在话下的,但是,有一个问题请你务必注意:在数学中,整数是可以无限大的,但是在计算机中,整数不能无限大。为什么呢?(推荐去google,其实计算机的基本知识中肯定学习过了。)因此,就会有某种情况出现,就是参与运算的数或者运算结果超过了计算机中最大的数了,这种问题称之为“整数溢出问题”。 |
162 | 190 |
|
163 | 191 | ##大整数 |
164 | 192 |
|
165 | 193 | 这里有一篇专门讨论这个问题的文章,推荐阅读:[整数溢出](http://zhaoweizhuanshuo.blog.163.com/blog/static/148055262201093151439742/) |
166 | 194 |
|
167 | | -对于其它语言,整数溢出是必须正视的,但是,在Python里面,看官就无忧愁了,原因就是Python为我们解决了这个问题,请阅读拙文:[大整数相乘](https://github.com/qiwsir/algorithm/blob/master/big_int.md) |
| 195 | +对于其它语言,整数溢出是必须正视的,但是,在Python里面,无忧愁,原因就是Python为我们解决了这个问题。 |
| 196 | + |
| 197 | +请阅读拙文:[大整数相乘](https://github.com/qiwsir/algorithm/blob/master/big_int.md) |
168 | 198 |
|
169 | | -ok!看官可以在实验一下大整数相乘。 |
| 199 | +可以在实验一下大整数相乘。 |
170 | 200 |
|
171 | 201 | >>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566 |
172 | 202 | 152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L |
173 | 203 |
|
174 | | -看官是幸运的,Python解忧愁,所以,选择学习Python就是珍惜光阴了。 |
| 204 | +上面计算结果的数字最后有一个L,就表示这个数是一个长整数,不过,看官不用管这点,反正是Python为我们搞定了。这是Python跟很多其它编程语言大不一样的地方,它帮你搞定了大整数问题,也就是说,你尽可以放心,在Python中,整数的长度是不受限制的(当然,这句话有点绝对了)。 |
175 | 205 |
|
176 | | -上面计算结果的数字最后有一个L,就表示这个数是一个长整数,不过,看官不用管这点,反正是Python为我们搞定了。这是Python跟很多其它编程语言大不一样的地方,它帮你搞定了大正数问题,也就是说,你尽可以放心,在Python中,整数的长度是不受限制的(当然,这句话有点绝对了)。 |
| 206 | +Python解忧愁,可是使用任意大的整数。 |
177 | 207 |
|
178 | | -在结束本节之前,有两个符号需要看官牢记(不记住也没关系,可以随时google,只不过记住后使用更方便) |
| 208 | +所以,选择学习Python就是珍惜光阴了。 |
| 209 | + |
| 210 | +强调知识点,有两个符号需要牢记(不记住也没关系,可以随时google,只不过记住后使用更方便) |
179 | 211 |
|
180 | 212 | - 整数,用int表示,来自单词:integer |
181 | 213 | - 浮点数,用float表示,就是单词:float |
@@ -211,8 +243,10 @@ ok!看官可以在实验一下大整数相乘。 |
211 | 243 |
|
212 | 244 | 请注意看刚才报错的信息,“out fo range”,就是超出了范围,溢出。所以,在计算中,如果遇到了浮点数,就要小心行事了。对于这种溢出,需要你在编写程序的时候处理,并担当相应的责任。 |
213 | 245 |
|
| 246 | +浮点数总要小心。更要学会阅读程序中的报错信息,因为后面还会用到,比如除法。 |
| 247 | + |
214 | 248 | ------ |
215 | 249 |
|
216 | 250 | [总目录](./index.md) | [上节:集成开发环境](./101.md) | [下节:除法](./103.md) |
217 | 251 |
|
218 | | -如果你认为有必要打赏我,请通过支付宝:**qiwsir@126.com**,或者加我微信(**微信号:qiwsir**),不胜感激。 |
| 252 | +如果你认为有必要打赏我,请通过支付宝:**qiwsir@126.com**,不胜感激。 |
0 commit comments