每个游戏都有某种需要累计的分数;在屏幕上绘制图形时必须使用数字来确定图形的位置和颜色;移动的物体会有方向和速度,这都要用数字来描述。所有有意思的程序几乎都会以某种方式使用数字和数学。所以下面就来学习Pyhton中有关数学和数字的一些基础知识。

四大基本运算

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

如你所料,Python使用连字号(-)(也称为减号)来做减法:

由于计算机键盘上没有除号(÷),所以所有程序都使用前斜杠(/)表示除法。

不过有时Python做除法时会得到意外的结果:

所有人都知道

3 / 2 = 1.5

这到底是怎么回事?

我先给你解释下这几个术语

整数(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都是整数,所以Pyhton认为你同样想要整数作为答案。它会把答案1.5取整为最接近的整数,也就是1。换句话说,Python完成了不带余数的除法。

要解决这个问题,可以这样试试看:

这样就好多了!如果把两个数中的任何一个作为小数输入,Python就会知道你想在答案中保留小部分。

要记住Python的这种整除行为。因为bug或者错误就是经由这样一些途径悄悄出现在你的代码中的。

操作符

+ 、 - 、 * 和 / 符号都称为操作符。这是因为它们会“操作”或处理放在符号两边的数字。

=号也是一个操作符,这称为赋值操作符(assignment operator),因为我们用它为一个变量赋值。

我们再来看看,如果把3乘5次,可以写成:

如果我们要是把3乘100次呢?

要我们写出100次乘法,这很浪费时间。

其实,Python用了一个双星号(**)来表示指数或者将一个数自乘为一个幂。你可以这样写出刚刚上述的例子:

这样键入是不是更容易一些呢!不过用了一个双星号(**)来表示指数,更重要的原因是,可以用来作非整数的指数运算,如下:

而要想利用乘法来做到这一点可不容易。

我们再来看一个除法例子,如果两个数不能整除,最后会得到一个余数(remainder):

7 / 2 = 3 ,余数是1

7 / 2的答案中有一个商(quotient),在这里就是3,还有一个余数1。如果在Python中将两个整数相除,它会给你商。不过余数呢?

Python有一个特殊的操作符来计算整数相除的余数。这称为取余操作符,这个符号是百分号(%)。可以像这样使用:

所以如果同时使用 / 和 %,就可以得到整数相除的完整答案:

可以看到,7除以2得3,余数是1。如果做浮点数除法,会得到小数答案:

以上算术操作符加(+)、减(-)、乘(*)、除(/)、指数(求幂)(**)和取余(%),在程序中需要的99%的操作符就是六个操作符。

自增和自减

操作符:+=(自增)和 -=(自减),在编程中经常出现。我们可以将它们认为是一个赋值运算的简写方式,如:

score = score + 1

我们可以简写成:

score += 1

举例说明一下:

或者

其中第一个例子将number增1(这会从7变成8)。第二个例子将number减去1(从7变成6)。

E记法

我们来试试在IDLE中写下以下两个数字:

27000000000000000000000

0.000000000000000000032

看到这么多0,数不数得对还是个问题。

不过,在Python中,我们是可以用E记法来写的。如上两个数字,我们可以写成:

2.7E22或2.7e22

3.2E-20或3.2e-20

这就是E记法,和我们学习的数学一样。

但是,我们不要把指数求幂(**)与E记法(E或e)弄混了。

3**5 表示 3 * 3 * 3 * 3 * 3,等于243。

3e5 表示 3 * 10 * 10 * 10 * 10 * 10,等于30000.0。

我们可以看到E记法是个浮点数。

运算顺序

下面哪一个正确?

2 + 3 * 4 = 20

还是

2 + 3 * 4 = 14

这要看你采用什么顺序来计算。如果先做加法,会得到

2 + 3 = 5

然后得到

5 * 4 = 20

如果先做乘法,就会得到

3 * 4 = 12

然后是

2 + 12 = 14

第二个顺序是正确的,所以正确答案是14。

在数学中有一种运算顺序(order of operation),指定了先计算哪些操作符,后计算哪些操作符,而不管它们的书写顺序如何。

在我们的这个例子中尽管 + 号在 * 号前面,但是应当先算乘法。Python会遵循正确的数学规则,所以它会先做乘法再做加法。可以在交互模式中试试看能不能得到这个结果:

可以看到,Python使用的顺序与你在数学课上学到的规则完全相同。指数运算最优先,然后是乘法,再后面是加减运算。

如果想先算2+3该怎么办呢?

我们只需要在它两边加上括号(()),比如:

这一次,Python会先做2+3(因为有括号),可以得到5,然后再做乘法5*4,得到20。

再强调一次,Python的运算顺序与数学课上讲的是一样的。

END

回顾

用Python如何完成基本数学运算。

整数和浮点数。

求幂(**)。

如何计算取余(余数)。

E记法。

测试题

Python中乘法使用哪个符号?

Python计算8/3的答案是什么?

怎么得到8/3的余数?

怎么得到8/3的小数结果?

Python中计算6*6*6*6的另一种做法是什么?

采用E记法,17 000 000要写作什么?

4.56e-5如果按常规的写法是什么(不是E记法)?

动手试一试

使用交互模式或者编写一个小程序解决下面的问题。

(a)3个人在餐厅吃饭,想分摊饭费。总共花费35.27美元,他们还想留15美分的小费。每个人该怎么付钱?

(b)计算一个12.5mX16.7m的矩形房间的面积和周长。

写一个程序,把温度从华氏度转换为摄氏度。转换公式是C=5/9*(F-32)。(提示:当心整除问题)

你知道怎么计算坐车去某个地方需要花多长时间吗?相应的公式(用文字表述)是“旅行时间等于距离除以速度”。编写一个程序,计算以80km/h的速度行驶200km需要花多长时间,并显示答案。

如何用python做计算_如何用Python做些基本的数学运算相关推荐

  1. 如何用python做计算_如何运用Python编写简易计算器?

    分3步吧使用Qt-Designer 设计UI 将UI文件转换成py文件 实现加减乘除的业务逻辑 效果如下: 附代码: CalculatorUI.py # -*- coding: utf-8 -*- # ...

  2. python科学计算_可视化图解Python科学计算包NumPy

    NumPy包是python生态系统中数据分析.机器学习和科学计算的主力. 它极大地简化了向量和矩阵的操作.Python的一些主要软件包依赖于NumPy作为其基础架构的基础部分(例如scikit-lea ...

  3. python复利计算_如何让Python复利计算器给出正确的答案

    早前曾发布过一个关于错误的问题.多亏了这里的几个人,我才解决了这个问题.现在我遇到了我的复利计算器的问题,当你输入本金.复利(年.月等).利率(0.03等)和年数时,计算错误. 其他Q链接:final ...

  4. python excel计算_怎么用python导入excel计算方差

    2017-01-20 回答 读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd).然后就可以跟着里面的例子稍微试一下就知道怎么用了.大概的流程是 ...

  5. python除法运算定律_安康宁陕Python科学计算_高校邦_答案

    安康宁陕Python科学计算_高校邦_答案h779 安康宁陕Python科学计算_高校邦_答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选修课,公务员,外语类 ...

  6. python代码做图_如何用Python代码制作图

    Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. 图是一 ...

  7. python预测房价走势_如何用 Python 预测房价走势?

    原标题:如何用 Python 预测房价走势? 买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题.今天分享的这篇文章,以波士顿的房地产市场为例, ...

  8. python 图像格式转换_如何用六行Python构建图像类型转换器

    python 图像格式转换 by AMR 通过AMR 如何用六行Python构建图像类型转换器 (How to build an image type convertor in six lines o ...

  9. 温度转换python代码解释_如何用python代码温度转换?

    如何用python代码温度转换? 用python代码温度转换的方法: 步骤一:分析问题的计算部分 步骤二:确定功能,使用IPO方法进一步分析 输入:华氏或者摄氏温度值.温度标识 处理:温度转化算法 输 ...

  10. 写python脚本管理_如何用python脚本控制TPLINK路由器

    我想知道是否有一种工具可以让我连接到路由器并关闭它,然后从python脚本重新启动它.如何用python脚本控制TPLINK路由器 我知道如果我用python脚本编写:import os然后做os.s ...

最新文章

  1. 2021年大数据Hadoop(二十七):YARN运行流程
  2. 修改vscode的语言
  3. 简述SHELL全局环境变量与局变环境变量
  4. python编程中的if __name__ == 'main': 的作用和原理
  5. 读芯片信息出错3_数字传感器的电路设计,跟着芯片哥学你也会
  6. linux中pthread_kill函数详解
  7. redis 上亿数据_票房上亿,稳居第一?肖战《诛仙》日本上映,真实数据到底怎样...
  8. 若川知乎问答:做前端感觉很吃力怎么办?
  9. Python版常见的排序算法
  10. java监听器的原理与实现
  11. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏
  12. 第四章Python数值计算工具 ——Numpy
  13. 猜拳小游戏(Java代码实现)
  14. Ceph分布式存储详解
  15. SaaS模式和传统软件模式有什么区别?
  16. Mybits新手入门之多表操作
  17. 中国非处方彩色美瞳隐形眼镜行业销售动态与营销前景预测报告2022-2027
  18. C++数组练习题(一)
  19. c++数独游戏2.1
  20. java做一个mud_菜鸟学Java(十二)——搭建一个完整的Java开发环境

热门文章

  1. 深入RxJava2 源码解析(二)
  2. 旧文重发:从第三方服务角度看各公司技术部门如何正确计算投入产出比~
  3. html参考文献英文文献,写英文paper的参考文献格式How To Cite References - Chicago Style...
  4. datasource java用法_Java Datasource介绍
  5. WINDOWS11自带输入法无法切换中英文问题解决办法
  6. The Bean Validation API is on the classpath but no implementation could be found 项目启动报错解决
  7. 回调地址没备案_回调地址常见问题及修改方法
  8. php遵义旅游管理系统的设计与实现毕业设计源码091801
  9. 基于QT实现西克sick激光LMS系列单线激光数据读取及显示
  10. 圣诞礼物|2020年送这些礼物你就能拥有一个程序员男朋友