本节书摘来自异步社区《趣学Python编程》一书中的第2章,第2.1节,作者[美]Jason Briggs,尹哲 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 计算与变量
好了,现在你的Python装好了,也知道如何启动Python Shell程序了,那么你就已经准备好用它来做点什么了。我们将从一些简单的计算开始,然后再使用变量。变量是计算机程序中用来保存东西的一种方式,它们能帮你写出有用的程序来。
2.1 用Python来做计算
一般来讲,当你要得到两个数字的乘积时你会用计算器或者笔和纸,比方说8 × 3.57。那么用PythonShell程序来运行这个计算是怎么样的?让我们来试一试。
双击桌面上的IDLE图标来启动PythonShell程序,或者如果你用Ubuntu的话,在“应用”菜单中点击IDLE图标。在提示符后面输入这个算式:
请注意,在Python里输入乘法运算时要使用星号(*)而不是乘号(×)。
让我们来试试另一个更有用一点的算式怎么样?
假设你在后院里挖出了一个装着20枚金币的袋子。第二天,你偷偷跑到地下室,把这些金币放进你爷爷发明的蒸汽动力的复制机里(很幸运的是你刚好能把20枚金币放进去)。你听到机器在吵闹,几个小时后,它吐出10枚闪闪发光的新的金币来。
如果在过去一年中的,你每天都这样做一遍的话,在你的财宝箱里会有多少金币?在纸上,这个算式可能会是这样:
10 × 365 = 3 650
20 + 3 650 = 3 670
当然,用计算器或者纸也能很容易地做这些运算,但是我们也可以用PyhonShell程序来做这些运算。首先,用10枚金币乘以一年中的365天得到3 650。接下来,我们加上原来的20枚金币就得到了3 670。
那么现在,如果要是有一只乌鸦发现了你卧室中闪亮的金子,而且每周它都能成功地飞进来并设法偷走3枚金币,那会怎样呢?
到一年结束时你还剩下多少金币?在Shell程序中这个算式是这个样子的:
首先,我们用3枚金币乘以一年中的52周。结果是156。把这个数字从我们总的金币数(3 670)中减掉,得到的结果是我们在一年结束时还剩下3 514枚金币。
这是一个很简单的程序。在这本书里,你将学到如何把这些想法扩展开,写出更有用的程序来。
2.1.1 Python的运算符
在PythonShell程序中,你可以做乘法、加法、减法和除法。还有其他的一些数学运算符,我们现在先不讲。Python用来做数学运算的那些基本符号叫做“运算符”,在表2-1中列出。
用斜杠(/)来表示除法是因为这与写分数的方式相似。例如,如果你有100个海盗和20个大桶,你想算算每个桶里要藏几个海盗,那你可以用100个海盗除以20个桶(100 ÷ 20),在PythonShell程序中输入100 / 20。要记住“斜杠”是顶部靠在右边的那个(靠左的是反斜杠“”)。
2.1.2 运算的顺序
在编程语言中,我们用括号来控制运算的顺序。任何用到运算符的东西都是一个“运算”。乘法和除法运算比加法和减法优先,也就是说它们先运算。换句话讲,如果你在Python中输入一个算式,乘法或者除法的运算会在加法或减法之前。
例如,在下面的算式中,数字30和20先相乘,然后数字5再加到这个乘积上。
这个算式是“30乘以20,然后把结果再加上5”的另一种说法。结果是605。我们可以通过给前面两个数字加上括号来改变运算的顺序。就像这样:
这个运算的结果是700(而不是605),因为括号告诉Python先做括号中的运算,然后再做括号之外的运算。这个例子就是在说:“5加上30,然后把结果乘以20。”
括号可以嵌套,就是说括号中还可以有括号,就像这样:
在这个例子中,Python先计算最里层的括号,然后是外面一层,最后再做那个除法运算。
也就是说,这个算式就是:“5加上30,然后把结果乘以20,再把这个结果除以10。”下面是具体的过程。
5加30得到35。
35乘以20得到700。
把700除以10得到了最终结果70。
如果我们没用括号,结果就会有些不同:
这样的话,30首先与20相乘(得到600),然后600被10除(得到60),最后,加上5得到了结果65。
请记住乘法和除法总是在加法和减法之前,除非用括号来控制运算的顺序。