我的编程空间,编程开发者的网络收藏夹
学习永远不晚

#8 Python数学方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

#8 Python数学方法

前言

前几节了解了Python的不同数据类型,有小伙伴会问,不同的数据类型之间是否可以相互转换?肯定是可以的,本篇博文主要记录数字类型的转换,其他类型的相互转换会在下几节记录,Here we go!

一、Python数字类型转换

通过前几节,我们知道Python数字的数据类型有:整型、长整型、浮点型、和复数,它们之间是如何转换的呢?亦或者它们是如何转换为其他数据类型呢?先来看所有的方法:

int(x [,base ])                        # 将 x 转换为一个整数  
float(x )                              # 将 x 转换到一个浮点数  
complex(real [,imag ])                 # 创建一个复数  
str(x )                                # 将对象 x 转换为字符串  
repr(x )                               # 将对象 x 转换为表达式字符串  
eval(str )                             # 用来计算在字符串中的有效Python表达式,并返回一个对象  
tuple(s )                              # 将序列 s 转换为一个元组  
list(s )                               # 将序列 s 转换为一个列表  
chr(x )                                # 将一个整数转换为一个字符  
ord(x )                                # 将一个字符转换为它的整数值  
hex(x )                                # 将一个整数转换为一个十六进制字符串  
oct(x )                                # 将一个整数转换为一个八进制字符串  
bin(x) # 将一个整数转换为一个二进制字符串

我们先来申明一个变量 num1 = 6 ,之后用 type() 函数查看其数据类型,任何数据类型都可以用此函数查看:

In [103]: num1 = 6

In [104]: type(num1)
Out[104]: int

可以看到 num1 默认是 int 类型的,再来创建  num2 = 6.6 ,再次查看其数据类型:

In [105]: num2 = 6.6

In [106]: type(num2)
Out[106]: float

可以看到 num2 默认是 float 类型的,也就是说,当在Python中创建一个整数的时候,默认的数据类型为 int ,创建一个小数的时候,默认的数据类型是 float ,创建完后想要修改其数据类型就要用到上面的类型转换函数了

In [110]: float(num1)
Out[110]: 6.0
int 转换为 float
In [114]: int(6.6)
Out[114]: 6

In [115]: int(-5.5)
Out[115]: -5

# int函数会把小数位全部抹去,保留整数部分
float 转换为 int
In [116]: complex(5,8)
Out[116]: (5+8j)

# complex(实部,虚部),虚部可以省略
创建复数
In [117]: str(5)
Out[117]: '5'

In [118]: str(6.6)
Out[118]: '6.6'
数字转换为字符串
In [123]: s = 'print("Hello,world!")'

In [124]: s
Out[124]: 'print("Hello,world!")'

In [125]: eval(s)
Hello,world!

# 可以看到将字符串执行了
执行字符串的有效表达式
In [130]: tuple([1,2,3])
Out[130]: (1, 2, 3)
列表转换为元组
In [139]: chr(56)
Out[139]: '8'

# 这里涉及ASC码的内容
整数转换为字符
In [142]: ord('8')
Out[142]: 56

# 这里涉及ASC码的内容
字符转换为整数
In [143]: hex(15)
Out[143]: '0xf'

# 十六进制的数以 0x 开头
整数转换为十六进制
In [144]: oct(20)
Out[144]: '0o24'

# 八进制以 0o 开头
整数转换为八进制
In [145]: bin(5)
Out[145]: '0b101'

# 二进制以 0b 开头
整数转化为二进制

二、Python数学方法

说起数学方法,肯定不再是简单的加减乘除乘方等基础运算了,数学方法更多是取绝对值、指数运算、对数运算、幂运算,开方运算以及三角函数等,这些方法涉及到的领域也是相当广阔,这部分也是非常重要的,每个人都应该熟练应用,尤其是想要去做数据方面工作的小伙伴。

math模块和cmath模块

Python中大量的数学方法并没有在内置函数中,而是在两个模块中,在使用数学方法之前,必须在Python程序中根据需要导入math模块或者cmath模块。math模块的对象主要是实数,cmath模块主要面向复数,二者包含的方法基本一致,根据实际使用需求导入即可,导入方法:

import math

回车以后如何没有任何报错信息就证明导入成功了,关于模块的详细概念会在之后的一节专门讲到,这里就先导入使用,不去做太多的解释。

导入以后,可以查看其帮助信息,还记得 help() 函数吗:

In [146]: import math

In [147]: help(math)
Help on built-in module math:

NAME
    math

DESCRIPTION
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

FUNCTIONS
    acos(...)
        acos(x)

        Return the arc cosine (measured in radians) of x.

    acosh(...)
        acosh(x)

        Return the inverse hyperbolic cosine of x.

    asin(...)
        asin(x)

        Return the arc sine (measured in radians) of x.

-- More  --

可以看到 math 模块的帮助信息很全很复杂,一页都展示不完(--- More ---),可以按空格健翻页或者回车键翻一行,Q键退出;如果只是想要快速查看其包含的方法,可以用 dir() 函数:

In [148]: dir(math)
Out[148]:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
In [149]: import cmath

In [150]: dir(cmath)
Out[150]:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']

可以看到math模块和cmath模块都有大量的方法,并且二者方法基本上一样,接下来,以math模块为例,详细的介绍其包含的方法

想要查看模块里面具体方法的帮助信息时,可以用 help() 函数查看:

In [173]: help(math.exp)   # 注意是 math.exp, 不是 math.exp()
Help on built-in function exp in module math:

exp(...)
    exp(x)

    Return e raised to the power of x.

注意:查看具体方法时,只写方法名称即可,不要加括号,否则会报错!

数学函数

abs(x)             # 返回数字的绝对值,如abs(-10) 返回 10
math.ceil(x)       # 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y)          # 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
math.exp(x)        # 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
math.fabs(x)       # 返回数字的绝对值,如math.fabs(-10) 返回10.0
math.floor(x)      # 返回数字的下舍整数,如math.floor(4.9)返回 4
math.log(x)        # 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
math.log10(x)      # 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)    # 返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)    # 返回给定参数的最小值,参数可以为序列。
math.modf(x)       # 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
math.pow(x, y)     # x**y 运算后的值。
round(x [,n])      # 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
math.sqrt(x)       # 返回数字x的平方根

可以看到,上面有些方法是直接写出的,如 abs(x) ,而有一些方法前面有 math. ,如 math.exp(x),这其实是有原因的,直接写出的表示是系统内置函数,不用导入任何模块就可以使用,而加前缀的表示这个方法是这个模块里面的,必须加前缀,否者会报错,任何模块里面的方法都要加上这个模块的前缀,例如:

In [159]: import math

In [160]: exp(2)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-160-840a487878a2> in <module>
----> 1 exp(2)

NameError: name 'exp' is not defined   # 不加前缀表示这个方法没有被定义

In [161]: math.exp(2)                  # 加上前缀就可以正常使用了
Out[161]: 7.38905609893065

上面的方法就不一一举例了,要注意 round(x) ,这个函数执行原理是:四舍六入五凑偶,小数位为5的时候要看前一位,前一位是偶数就舍弃,是奇数就进一

三角函数

math.acos(x)         # 返回x的反余弦弧度值。
math.asin(x)         # 返回x的反正弦弧度值。
math.atan(x)         # 返回x的反正切弧度值。
math.atan2(y, x)     # 返回给定的 X 及 Y 坐标值的反正切值。
math.cos(x)          # 返回x的弧度的余弦值。
math.hypot(x, y)     # 返回欧几里德范数 math.sqrt(x*x + y*y)。
math.sin(x)          # 返回的x弧度的正弦值。
math.tan(x)          # 返回x弧度的正切值。
math.degrees(x)      # 将弧度转换为角度,如math.degrees(math.pi/2) , 返回90.0
math.radians(x)      # 将角度转换为弧度

可以看到涉及三角函数的方法都在 math 模块里面

数字常量

math.pi    # 数学常量 pi(圆周率,一般以π来表示)
math.e     # 数学常量 e,e即自然常数(自然常数)。

两个最常见的数字常量,圆周率 pi 和自然常数 e 也在 math 模块里面

In [164]: math.pi
Out[164]: 3.141592653589793

In [165]: math.e
Out[165]: 2.718281828459045

随机数函数

随机函数常作为随机数发生器使用,大量领域会用到随机数,Python的随机数基本上都在 random模块中,具体方法如下:

In [171]: import random

In [172]: dir(random)
Out[172]:
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_ceil', '_cos', '_e', '_exp', '_inst', '_log', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

其主要函数功能:

random.choice(seq)                          # 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
random.randrange ([start,] stop [,step])    # 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random.random()                             # 随机生成下一个实数,它在[0,1)范围内。
random.seed([x])                            # 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
random.shuffle(lst)                         # 将序列的所有元素随机排序
random.uniform(x, y)                        # 随机生成下一个实数,它在[x,y]范围内。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

#8 Python数学方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

#8 Python数学方法

前言前几节了解了Python的不同数据类型,有小伙伴会问,不同的数据类型之间是否可以相互转换?肯定是可以的,本篇博文主要记录数字类型的转换,其他类型的相互转换会在下几节记录,Here we go!一、Python数字类型转换通过前几节,我们
2023-01-30

python学习(8)

退出双层循环:方式1:try--excepttry: for i in range(5): for j in range(5): if i==3 and j ==3:
2023-01-31

笨办法学Python - 习题8-10:

目录 1、习题 8: 打印,打印 2、习题 9: 打印,打印,打印 3、习题 10: 那是什么? 3.1、转义序列: 4、习题总结
2023-01-30

Python 学习笔记 (8)—— sy

主要介绍用的比较多的sys的模块命令包括:sys.argv,sys.platform,sys.getdefaultencoding,sys.setdefaultencoding(),sys.getfilesystemencoding(),s
2023-01-31

【8】python文件的读写方法

(1)、读文件的步骤:(1)打开文件   open(path,flag,encoding,[errors])   path:打开路径   flag:打开方式 r(只读) rb(二进制格式) r+(可以读写)
2023-01-30

Python实现8种常用抽样方法

目录概率抽样技术1.随机抽样(Random Sampling)2.分层抽样(Stratified Sampling)3.聚类抽样(Cluster Sampling)4.系统抽样(Systematic Sampling)5.多级采样(Mult
2022-06-02

Python学习之魔法方法

Python中会看到前后都加双下划线的函数名,例如 __init__(self),这类写法在Python中具有特殊的含义。如果对象使用了这类方法中的某一个,那么这个方法将会在特殊的情况下被执行,然而几乎不会直接调用此类方法。如果没有兼容旧版
2023-01-30

从PEP-8学习Python编码风格

关于空行类与顶级函数(top-level function)的定义之间应当空两行。类中的方法之间应当空一行。方法中的逻辑部分之间可以空一行。关于原文件编码Python3中应当总是使用UTF-8。(Python2使用ASCII。)在使用了规定
2023-01-31

Python学习【魔术方法】

魔术方法Python中,所有以双下划线“__”包围的方法(即定义在类中的函数)为魔术方法Magic Method。构造和初始化在使用classname()创造实例化对象时,会依次执行__new__和__init__两个方法。__new__是
2023-01-31

Java 8 - 默认方法

理解Java 8 默认方法需理解几个问题: @pdai为什么会出现默认方法?接口中出现默认方法,且类可以实现多接口的,那和抽象类有啥区别?多重实现的默认方法冲突怎么办?Java 8 - 默认方法什么是默认方法,为什么要有默认方法先上例子什么
2022-12-02

学习python类方法与对象方法

本文实例针对python的类方法与对象方法进行学习研究,具体内容如下class Test_Demo:TEST = 'test_value'def __init__(self,name,age):self.name = nameself.ag
2022-06-04

Python学习笔记8——列表、字典、元

参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里,密码是:kym3Lists 列表The Python list object is the most general
2023-01-30

python基础学习8----文件基本操

一.文件的打开,open函数f = open(file_name,mode)#创建文件对象打开模式有很多种  1. 'r': 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。  2. 'r+': 打开一个文件用于读写。文件指
2023-01-30

Python学习手册之数据封装、类方法、

在上一篇文章中,我们介绍了 Python 的内部方法、操作符重载和对象生命周期,现在我们介绍 Python 的数据封装、类方法、静态方法和属性函数。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/1
2023-01-30

Python学习方法有哪些

本篇内容主要讲解“Python学习方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python学习方法有哪些”吧!  1、找简单易懂、例程比较好的教程,从头看到结尾,不要看很多本,专注于
2023-06-01

python dict()方法学习笔记

学习PYTHON 的dict()方法笔记。  dict() -> new empty dictionary |  dict(mapping) -> new dictionary initialized from a mapping obje
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录