7B: 数学

第七课有三个部分A, B, C,顺序不限。

到目前为止,我们通过使用Python的运算符+,  -, */和方程max and min进行了一些数学运算。在这节课中,我们会看到更多的运算符和方程,将会学习如何进行更复杂的运算。

数学运算符号

我们已经看到了该如何使用运算符进行加 (a + b),减(a - b),乘(a * b),除(a / b)。我们现在来学习三个新的运算符。

  • 运算符a ** b得出ab (ba相乘)。比如,2 ** 3就是8 (2×2×2)。
  • 整数除法运算符a // b计算a 除以b的商的整数部分,忽略余数。比如,14 // 34。/li>
  • 运算符a % b计算a除以b的余数。比如,14 % 32

示例
幂,整数除法,和模运算符。

编程练习: 鸡蛋装箱
每个蛋箱有12个鸡蛋。写一个程序,input()读取一个整数,打印出两个数字:这些鸡蛋能装多少蛋箱,还有多少个鸡蛋剩下。比如说,输入27,打印出

2
3
因为27个鸡蛋能装2蛋箱,剩下3个鸡蛋。提示

模运算符应用广泛。例如:

查看是不是闰年是整除性测试 的一个例子;在下一个练习中你会写一个程序,运行通用的除法测试。

编程练习: 整除性
写一个程序,在不同的两行读取分别两个正整数ab。如果a能被b整除,那么打印"divisible"。否则,打印"not divisible"。比如,当输入是

14
3
程序打印出"not divisible"。提示

数学方程

Python可以计算大部分能在科学计算器上找到的数学方程。

  • sqrt(x)计算x的算术平方根。
  • exp(x)log(x)是指数方程和对数方程。
  • sin(x), cos(x), tan(x)等三角函数方程。
  • Pi 是指 3.1415

当使用Python的三角函数方程时,x一定要使用弧度制,而不是角度制。

Python将这些大量的方程收入一个叫做模块的集合里。以上的方程属于math模块。在使用任何模块里的方程前,你需要导入模块,下面是一个例子。为了使用一个模块中的方程,你需要依次输入模块的名字,一个句号,方程的名字。

示例
使用数学模块中的方程

编程练习: 圆形披萨
你的朋友们已经吃了他们的方形披萨,现在在订购圆形的披萨。编写一个程序来计算出这个圆形披萨的面积。输入值是float r,代表半径(cm)。输出应该是面积(cm2),公式是A=pi*r2。使用Python中的pi,不要输入3.1415...

编程练习: 等比中项
两个数ab等比中项

\sqrt{ab}

(用来比较显示屏的横纵比,描述人口的平均增长率)。编写一个程序,读取两行正的float,输出他们的等比中项。
例如:如果输入是

5.0
20.0
那么输出就应该是10.0

把它们放在一起

正如你在之前的联系所看到的那样,你可以通过结合运算符来建立数学表达式。Python通过使用“运算顺序”来计算:

先是Brackets(括号),然后是then Exponents(指数),然后是Division(除法)和Multiplication(乘法),最后是Addition(加法)和Subtraction(减法)。

这个法则可以缩写成"BEDMAS"。整数除法和模可以归入"除法和乘法"类。比如,

3 * (1 + 2) ** 2 % 4
第一部是计算小括号(1+2 = 3),然后是指数(3 ** 2 = 9),然后是乘法(3 * 9 = 27),最后是模27 % 4 = 3.

简答练习: 运算顺序
计算Python表达式

6 - 52 // 5 ** 2
正确!

涉及到负数的整数除法:当ab都是正数,表达式a // bint(a / b)是一样的。然而,当a是负数时,a // b采取"向负无穷靠近"原则,int(a / b)采取"向零靠近"原则。

示例
涉及到负数的整数除法

整数和小数

数学表达式的结果是一个数。正如我们之前所看到的一样,每一个数都以下面两种形式中的一种储存:intfloatint代表整数,不论正负,没有大小限制。

Python不接受1 000 0001,000,000形式的数字。只接受1000000的形式。

Tfloat代表小数。就像是一个简单的计算机,将1/30.33333333的形式储存,Python也将小数以近似值的形式储存。

因为Python使用小数的近似值,某些方程从数学角度上看是对的,但是在Python里面就不对。
示例
示例
对于这节课来说,当我们比较浮点数的时候,我们允许一些近似值。比如,在本网站的内部打分软件中,任何浮点数输出都会被打分为正确如果它是几乎等于正确答案。

我们以一些联系来结束这节课。

编程练习: 考验技能的问题
作为一个“考验技能的问题”,你有三个整数,将前两个相加,然后再乘第三个数。提示

编程练习: 一脚与一英尺
这个程序的输入是一个小数,代表着高度(英尺)。编写一个程序,输出相同的高度但是是以厘米为单位,换算公式是 1 英尺= 30.48 厘米。比如,如果输入是0.5,输出就应该是15.24

编程练习: 重力
一个包裹从高度为11000m的飞机上扔下,以速度v m/s降落。随着它落下,它到地面的距离是-4.9t2 - vt + 11000,其中t是从开始扔下开始计算,单位是秒。编写一个程序,输出包裹从扔到落地所需时间。v是正的小数。需要的时间是根据下列公式得到的:

\displaystyle{t=\frac{v-\sqrt{v^2-4(-4.9)(11000)}}{2(-4.9)}}

恭喜!在完成这些练习之后,你可以开始下一课的学习了。