math模块及使用方式
在数学之中,除了加减乘除四则运算之外——这是小学数学——还有其它更多的运算,比如乘方、开方、对数运算等等,要实现这些运算,需要用到 Python 中的一个模块:Math
模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具。换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践的需要,于是就有人专门制作了另外一些工具。这些工具被称之为“模块”
任何一个 Pythoner 都可以编写模块,并且把这些模块放到网上供他人来使用。
当安装好 Python 之后,就有一些模块默认安装了,这个称之为“标准库”,“标准库”中的模块不需要安装,就可以直接使用。
如果没有纳入标准库的模块,需要安装之后才能使用。模块的安装方法,我特别推荐使用 pip 来安装。这里仅仅提一下,后面会专门进行讲述,性急的看官可以自己 google。
使用 math 模块
math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:
1
|
>>> import math |
用 import 就将 math 模块引用过来了,下面就可以使用这个模块提供的工具了。比如,要得到圆周率:
1
2
|
>>> math.pi 3.141592653589793 |
这个模块都能做哪些事情呢?可以用下面的方法看到:
1
2
|
>>> dir (math) [ '__doc__' , '__name__' , '__package__' , 'acos' , 'acosh' , 'asin' , 'asinh' , 'atan' , 'atan2' , 'atanh' , 'ceil' , 'copysign' , 'cos' , 'cosh' , 'degrees' , 'e' , 'erf' , 'erfc' , 'exp' , 'expm1' , 'fabs' , 'factorial' , 'floor' , 'fmod' , 'frexp' , 'fsum' , 'gamma' , 'hypot' , 'isinf' , 'isnan' , 'ldexp' , 'lgamma' , 'log' , 'log10' , 'log1p' , 'modf' , 'pi' , 'pow' , 'radians' , 'sin' , 'sinh' , 'sqrt' , 'tan' , 'tanh' , 'trunc' ] |
dir(module)是一个非常有用的指令,可以通过它查看任何模块中所包含的工具。从上面的列表中就可以看出,在 math 模块中,可以计算正 sin(a),cos(a),sqrt(a)......
这些我们称之为函数,也就是在模块 math 中提供了各类计算的函数,比如计算乘方,可以使用 pow 函数。但是,怎么用呢?
Python 是一个非常周到的姑娘,她早就提供了一个命令,让我们来查看每个函数的使用方法。
1
|
>>> help (math. pow ) |
在交互模式下输入上面的指令,然后回车,看到下面的信息:
1
2
3
4
5
6
7
|
Help on built-in function pow in module math: pow(...) pow(x, y) Return x**y (x to the power of y). |
这里展示了 math 模块中的 pow 函数的使用方法和相关说明。
第一行意思是说这里是 math 模块的内建函数 pow 帮助信息(所谓 built-in,称之为内建函数,是说这个函数是 Python 默认就有的)
第三行,表示这个函数的参数,有两个,也是函数的调用方式
第四行,是对函数的说明,返回 x**y 的结果,并且在后面解释了 x**y 的含义。
最后,按 q 键返回到 Python 交互模式
从上面看到了一个额外的信息,就是 pow 函数和 x**y 是等效的,都是计算 x 的 y 次方。
1
2
3
4
5
6
|
>>> 4 * * 2 16 >>> math. pow ( 4 , 2 ) 16.0 >>> 4 * 2 8 |
特别注意,4**2 和 4*2 是有很大区别的。
用类似的方法,可以查看 math 模块中的任何一个函数的使用方法。
关于“函数”的问题,在这里不做深入阐述,看管姑且按照自己在数学中所学到去理解。后面会有专门研究函数的章节。
下面是几个常用的 math 模块中函数举例,看官可以结合自己调试的进行比照。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
>>> math.sqrt( 9 ) 3.0 >>> math.floor( 3.14 ) 3.0 >>> math.floor( 3.92 ) 3.0 >>> math.fabs( - 2 ) # 等价于 abs(-2) 2.0 >>> abs ( - 2 ) 2 >>> math.fmod( 5 , 3 ) # 等价于 5%3 2.0 >>> 5 % 3 2 |
几个常见函数
有几个常用的函数,列一下,如果记不住也不要紧,知道有这些就好了,用的时候就 google。
求绝对值
1
2
3
4
5
6
|
>>> abs ( 10 ) 10 >>> abs ( - 10 ) 10 >>> abs ( - 1.2 ) 1.2 |
四舍五入
1
2
3
4
5
6
7
|
>>> round ( 1.234 ) 1.0 >>> round ( 1.234 , 2 ) 1.23 >>> # 如果不清楚这个函数的用法,可以使用下面方法看帮助信息 >>> help ( round ) |
1
2
3
4
5
6
7
|
Help on built-in function round in module __builtin__: round(...) round(number[, ndigits]) -> floating point number Round a number to a given precision in decimal digits (default 0 digits). This always returns a floating point number. Precision may be negative. |
math模块及使用方式的更多相关文章
- Python语法速查: 5. 运算符、math模块、表达式
返回目录 (1)一些较容易搞错的运算符 一般简单的如加减乘除之类的运算符就不写了,这里主要列些一些容易搞错或忘记的运算符.运算符不仅仅只有号,有一些英文单词如 in, and 之类,也是运算符,并不是 ...
- 第12.3节 Python math模块导览
math 模块提供对浮点数学的底层C库函数的访问,常用的成员包括: math.ceil(x):返回 x 的上限,即大于或者等于 x 的最小整数 math.floor(x):返回 x 的向下取整,小于或 ...
- python之math模块
1.math简介 >>>import math #导入math模块 >>>dir(math) #这句可查看所有函数名列表 >>>help(math ...
- 2.2Python数据处理篇之---math模块的数学函数
目录 目录 前言 (一)一览表 1.基本函数 2.对数函数 3.三角函数 4.角度的切换 5.双曲函数 6.math定义的常数 (二)实例 目录 前言 math模块是基础的python数学函数模块,是 ...
- python标准库介绍——6 math模块详解
==math 模块== ``math`` 模块实现了许多对浮点数的数学运算函数. 这些函数一般是对平台 C 库中同名函数的简单封装, 所以一般情况下, 不同平台下计算的结果可能稍微地有所不同, 有时候 ...
- Python:基本运算、基本函数(包括复数)、Math模块、NumPy模块
基本运算 x**2 : x^2 若x是mat矩阵,那就表示x内每个元素求平方 inf:表示正无穷 逻辑运算符:and,or,not 字典的get方法 a.get(k,d) 1 1 get相当于一条if ...
- Python常用的一些内建函数和math模块函数
一:Python内建函数 # abs取绝对值 num = -10 print(abs(num)) # max 求最大值 print(max(6, 9, 2, 12, 8)) # min求最小值 pri ...
- 微软企业库5.0 学习之路——第八步、使用Configuration Setting模块等多种方式分类管理企业库配置信息
在介绍完企业库几个常用模块后,我今天要对企业库的配置文件进行处理,缘由是我打开web.config想进行一些配置的时候发现web.config已经变的异常的臃肿(大量的企业库配置信息充斥其中),所以决 ...
- Python学习笔记:math模块(数学),random模块(随机数)
math模块 math模块用于数学意义上的一些计算,常用的方法有: math.pi:PI的值(3.141592653589793). math.floor(x):返回一个小于等于x的最大整数(浮点类型 ...
随机推荐
- MySQL 5.7.9的多源复制
什么是多源复制? 首先,我们需要清楚 multi-master 与multi-source 复制不是一样的. Multi-Master 复制通常是环形复制,你可以在任意主机上将数据复制给其他主机. M ...
- MySQL 主键冲突,无法插入数据
数据库版本:5.6.16 问题:开发来电话说仓库无法下单,程序插入数据提示:入库单 xxxx1589762285确认失败:Duplicate entry '8388607' for key 'PRIM ...
- AJAX请求遭遇未登录和Session失效的解决方案
使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一 ...
- 【BZOJ 2132】 圈地计划
Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区 ...
- C++中的lambda表达式
1.基本形式: [捕获列表](参数列表){函数体}; 其中捕获列表和函数体不能省略但是捕获列表可以为空,也就是说最简单的lambda表达式是: []{}; 2.lambda表达式又叫匿名函数 ...
- Week1 Team Homework #1: Study the projects done by previous student groups
我们研究了学长的项目:百度3D地图API的调用.下面是我们对该项目的一些看法: 优点: 界面清晰 各类之间调用及其他关系容易理清. 缺点: 前段html代码过于冗杂,很多(div)块间的层次关系不 ...
- iOS 23 种设计模式
设计模式主要分三个类型:创建型.结构型和行为型. 其中创建型有: 一.Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二.Abstract Factory,抽象工厂 ...
- android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)
public static Intent openFile(String filePath){ File file = new File(filePath); if(!file.exists()) r ...
- PythonChallenge 2:爬虫和正则表达式
题目: 解题思路:题目里已经说的很清楚了,字符可能在网页的源代码里.右键查看网页源代码,发现其中有一段:find rare characters in the mess below.有些人是直接把下面 ...
- Eclipse 环境安装和配置优化
1.下载相应的eclipse版本. 官方下载地址:http://www.eclipse.org/downloads/ juno版本的64位下载地址:http://www.eclipse.o ...