习题 3: 数字和数学计算 **************************** 每一种编程语言都包含处理数字和进行数学计算的方法。不必担心,程序员经常撒谎说他们是多么牛的\ 数学天才,其实他们根本不是。如果他们真是数学天才,他们早就去从事数学相关的行业了,而不是\ 写写广告程序和社交网络游戏,从人们身上偷赚点小钱而已。 这章练习里有很多的数学运算符号。我们来看一遍它们都叫什么名字。你要一边写一边念出它们的\ 名字来,直到你念烦了为止。名字如下: * ``+`` plus 加号 * ``-`` minus 减号 * ``/`` slash 斜杠 * ``*`` asterisk 星号 * ``%`` percent 百分号 * ``<`` less-than 小于号 * ``>`` greater-than 大于号 * ``<=`` less-than-equal 小于等于号 * ``>=`` greater-than-equal 大于等于号 有没有注意到以上只是些符号,没有运算操作呢?写完下面的练习代码后,再回到上面的列表,写出每\ 个符号的作用。例如 ``+`` 是用来做加法运算的。 .. literalinclude:: ex/ex3.py :linenos: 你应该看到的结果 =================== .. literalinclude:: ex/ex3.txt :language: console 加分习题 ============ 1. 使用 ``#`` 在代码每一行的前一行为自己写一个注解,说明一下这一行的作用。 2. 记得开始时的 <练习 0> 吧?用里边的方法把 Python 运行起来,然后使用刚才学到的运算符号,把\ Python当做计算器玩玩。 3. 自己找个想要计算的东西,写一个 ``.py`` 文件把它计算出来。 4. 有没有发现计算结果是"错"的呢?计算结果只有整数,没有小数部分。研究一下这是为什么,\ 搜索一下“浮点数(floating point number)”是什么东西。 5. 使用浮点数重写一遍 ``ex3.py``\,让它的计算结果更准确(提示: 20.0 是一个浮点数)。 常见问题回答 ========================== 为什么 `%` 是求余数符号,而不是百分号? 很大程度上只是因为涉及人员选择了这个符号而已。一般而言它是百分号没错,就跟 100% 表示百分之百一样。在编程中除法我们用了 `/`\,而求余数又恰恰选择了 `%` 这个符号,\ 仅此而已。 `%` 是怎么工作的? 换个说法就是“X 除以 Y 还剩余 J”,例如“100 除以 16 还剩 4”。 `%` 运算的结果就是 J 这部分。 运算优先级是什么样子的? 美国我们用 PEMDAS 这个简称来辅助记忆,它的意思是“括号、指数、乘、除、加、减”——\ Parentheses Exponents Multiplication Division Addition Subtraction ——\ 这也是 Python 里的运算优先级。 为什么 `/` 除法算出来的比实际小? 其实不是没算对,而是它将小数部分丢弃了,试试 `7.0 / 4.0` 和 `7 / 4` 比较一下,你就看出不同了。