鱼C论坛

 找回密码
 立即注册
查看: 2481|回复: 0

[技术交流] 04讲 基本数学运算及测试题

[复制链接]
发表于 2017-6-21 19:47:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 keliyuan 于 2017-6-24 00:04 编辑

 四大基本运算
在第 1 章中我们已经看到 Python 可以做一些数学运算:使用加号(+)完成加
法,另外使用星号(*)完成乘法。

如你所料,Python 使用连字号(-)(也称为减号)来做减法:
>>> print 8 – 5
3
由于计算机键盘上没有除号(÷),所以所有程序都使用前斜杠(/)表示除法。
>>> print 6/2
3
这是对的。不过有时 Python 做除法时会得到意外的结果: >>> print 3/2
1
咦?我还以为计算机精通数学计算呢,原来不过如此!所有人都知道
3 / 2 = 1.5
这到底怎么回事?
嗯,虽然看起来好像很傻,其实 Python 确实想表现得聪明一些。要解释这个问题,
你要知道整数和小数。如果你还不知道它们的区别,先来看看术语箱中简单的解释。

整数(integer)就是我们平常数数时所说的数,如 1、2、3,另外还包括 0
和负数,如 -1、-2、-3。
小数(decimal number)也称为实数(real number),这些数有小数点而且
后面有小数位,如 1.25、0.3752 和 -101.2。
在计算机编程中,小数也称为浮点数(floating-point number,有时简写为
floats,或者如果只有一个浮点数,就简写为 float)。这是因为小数点会“浮动”。
0.00123456 或 12345.6 都是浮点数。

因为你输入的 3 和 2 都是整数,所以 Python 认为你同样想要整数作为答案。所
以它会把答案 1.5 取整为比它小且最接近的整数,也就是 1。换句话说,Python 完成
了不带余数的除法。
要解决这个问题,可以这样试试看: >>> print 3.0 / 2
1.5
这样就好多了!如果把两个数中的任何一个作为小数输入,Python 就会知道你
想在答案中保留小数部分。

Python 使用的顺序与你在数学课上学到的(或者将要学到的)规则完全相同。指
数运算最优先,然后是乘除,再后面是加减运算。括号使用也相同。

另外两个操作符
还有两个算术操作符要告诉你。程序中需要的 99% 的操作符就是这两个操作符
再加上前面刚讲的 4 个基本操作符。
指数—自乘为一个幂
如果把 3 乘 5 次,可以写成
>>> print 3 * 3 * 3 * 3 * 3
243
不过,这就等同于 35
,或者“3 的指数为 5”,也就是“3 的 5 次幂”。Python 用
一个双星号表示指数或者将一个数自乘为一个幂。
>>> print 3 ** 5
243

取余—求余数
在 Python 中第一次尝试除法时,我们已经看到,如果将两个整数相除,Python 2

会给你一个整数答案。(Python 3 使用 // 操作符。)也就是说,它在完成整数除法。
不过,在整数除法中,答案实际上有两部分。
还记得刚开始学除法吗?如果两个数不能整除,最后会得到一个余数(remainder):
7 / 2 = 3,余数是 1
7 / 2 的答案中有一个商(quotient),在这里就是 3,还有一个余数(remainder),
这里的余数是 1。如果在 Python 中将两个整数相除,它会给你商。不过余数呢?
Python 有一个特殊的操作符来计算整数相除的余数。这称为取余(modulus)操
作符,这个符号是百分号(%)。可以像这样使用: >>> print 7 % 2
1
所以如果同时使用 / 和 %,就可以得到整数相除的完整答案:
>>> print 7 / 2
3
>>> print 7 % 2
1
可以看到,7 除以 2 得 3,余数是 1。如果做浮点数除法,会得到小数答案:
>>> print 7.0 / 2
3.5    
自增和自减

还记得上一章中的例子:score = score + 1 吗?我们说过,这称为自增
(incrementing)。与它类似的是 score = score – 1,这称为自减(decrementing)。
这些运算在编程中经常出现,因此有自己专门的操作符:+=(自增)和 -=(自减)。
可以像这样使用:
>>> number = 7
>>> number += 1
>>> print number
8

或者:

number increased by 1
>>> number = 7
>>> number -= 1
>>> print number
6

E 记法
在 E 记法中,这个数要写作 3.8E16 或者 3.8e16。读作“3.8 指数 16”或者简读
作“3.8 e 16”。这里假设指数是 10 的幂。这就等同于写成 3.8×1016。
在大多数程序和计算机语言(包括 Python)中,大写和小写 E 都是
允许的。
对于非常小的数,如 0.0000000000001752,可以使用一个负指数。科学计数法
会写作 1.752×10-13,E 记法会写作 1.752e–13。负指数表示要把小数点向左移而不是
向右移。
采用 E 记法,可以在 Python 中输入非常大和非常小的数(或者可以是任何数)。
后面我们还会学习如何让 Python 使用 E 记法打印数

>>> a = 2.5e6
>>> b = 1.2e7
>>> print a + b
14500000.0

指数与 E 记法
不要把自乘得到幂(也称为求幂)和 E 记法弄混了。
3**5   表示 3的5次方  也就是 3 * 3 * 3 * 3 * 3,等于 243。

3e5   “3 乘以 10 的 5 次幂, 3*10*10*10*10*10   ,等于300000

求幂是指一个数自乘得到幂。E 记法表示乘以 10 的几次幂.

有些人可能会把 3e5 和 3**5 都读作“3 指数 5”,不过,它们是完全不同的。怎
么读并不重要,只要你懂得它们分别代表什么含义.

你学到了什么
在这一章,你学到了以下内容。
用 Python 如何完成基本数学运算。
整数和浮点数。
求幂(自乘得到一个幂)。
如何计算取余(余数)。
E 记法的有关内容。
测试题
1. Python 中乘法使用哪个符号?
2. Python 计算 8 / 3 的答案是什么?
3. 怎么得到 8 / 3 的余数?
4. 怎么得到 8 / 3 的小数结果?
5. Python 中计算 6 * 6 * 6 * 6 的另一种做法是什么?
6. 采用 E 记法,17 000 000 要写作什么?
7. 4.56e–5 如果按常规的写法是什么(不是 E 记法)?
动手试一试
1. 使用交互模式或者编写一个小程序解决下面的问题。
(a) 3 个人在餐厅吃饭,想分摊饭费。总共花费 35.27 美元,他们还想留 15%
的小费。每个人该怎么付钱?
(b) 计算一个 12.5m×16.7m 的矩形房间的面积和周长。
2. 写一个程序,把温度从华氏度转换为摄氏度。转换公式是 C = 5 / 9* (F–32)。
(提示:当心整除问题!)
3. 你知道怎么计算坐车去某个地方需要花多长时间吗?相应的公式(用文字表
述)是“旅行时间等于距离除以速度”。编写一个程序,计算以 80 km/h 的速
度行驶 200 km 需要花多长时间,并显示答案。

评分

参与人数 2鱼币 +5 收起 理由
康小泡 + 2
小甲鱼 + 3 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表