从Scratch到Python 18 数学计算

在Scratch中,有这样一条不怎么常用但非常强大的指令:

 

它可以为我们完成许多数学计算工作。包括:

  • 求绝对值
  • 向下取整
  • 向上取整
  • 平方根
  • sin
  • cos
  • tan
  • asin
  • acos
  • atan
  • ln
  • log
  • e^
  • 10^

实际上,这就是一个强大的数学函数库,在绘制一些复杂图形的时候,我们会用到里面的函数。这些函数要是我们自己用基本的运算指令来实现那可太麻烦了,直接用就行。

对应到Python编程,除了基本的运算指令,Python标准库提供了一个math模块,它为我们提供数字处理最基础的工具。我们今天就来学习它。

一、估算

我们可以用math模块的ceil()和floor实现向上取整和向下取整。

  • ceil():接收一个数字类型的参数,返回不小于参数的最小整数。
  • floor():接收一个数字类型的参数,返回不大于参数的最大整数。

引入math模块后直接调用就可以,看示例:

import math

print('math.floor(5.18)=',math.floor(5.18))
print('math.floor(-5.18)=',math.floor(-5.18))
print('math.ceil(5.18)=',math.ceil(5.18))
print('math.ceil(-5.18)=',math.ceil(-5.18))

运行效果如下:

 

二、常见数学运算

使用math模块可以完成许多复杂的数学运算,不过我们这里只列出简单常见的几种:

  • fabs():接收数字参数返回其绝对值
  • pow():接收两个数字类型参数x、y,返回x的y次幂
  • factorial():接收一个整数参数n,返回n的阶乘
  • sqrt():接收一个正数参数,返回其平方根
  • gcd():接收两个整型参数,返回其最大公约数。gcd(0,0)返回0

示例如下:

import math

print('math.fabs(-5.18)=',math.fabs(-5.18))
print('math.pow(3,3)=',math.pow(3,3))
print('math.pow(-5.18,-2)=',math.pow(-5.18,-2))
print('math.factorial(10)=',math.factorial(10))
print('math.sqrt(25)=', math.sqrt(25))
print('math.gcd(100,45)=', math.gcd(100,45))
print('math.gcd(0,0)=', math.gcd(0,0))

运行效果:

 

 

我们以前用Scratch编程时,曾经用递归的方法计算阶乘,大约到170左右,计算机的结果Scratch就不再支持了(数字太大),可是用math模块,我们能计算很大的数字阶乘,具体多大呢?你可以试试看。

三、其它功能

math模块还提供了一些常量、角度转换工具等功能:

  • math.pi:返回圆周率Pi
  • math.inf:返回正无穷大浮点数
  • radians(x):将角度x从度数转换为弧度
  • degrees(x):将角度x从弧度转换为度数

这里不再举例,大家可以自行在海龟编辑器调试一下。

四、课后作业

根据毕达哥拉斯定理(勾股定理);给定一个直角三角形,则该直角三角形斜边的平方,等于同一直角三角形两直角边平方的和。假设直角形三角形斜边为c,两条直角边为a、b,则 a^2 + b^2 = c^2 请编程输入直角三角形的直角边长a、b,利用math模块求直角三角形斜边c。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

从Scratch到Python 17 时间处理

2023-6-6 11:26:04

综合资讯

从Scratch到Python 19 面向对象编程

2023-6-6 11:28:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索