math python 向上取整_Python成为专业人士笔记-各数学运算操作深度剖析

“专业人士笔记”系列目录:

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com
6fb28011cff670b3de46736bcc9a62f7.png

Python可以执行常见的数学运算符,包括整数和浮点除法、乘法、取幂、加法和减法,而数学math模块(包含在所有标准Python版本中)提供了扩展功能,如三角函数、根操作、对数等。

Division 除法

当两个操作数都是整数时,Python3执行后返回的结果是float数据类型,这点和Python2不同;Python不同版本对除法的处理会有不同,其是根据除号两端变量的数据类型决定如何处理的

比如, 我们先定义几个变量:

a, b, c, d, e = 3, 2, 2.0, -3, 10

在Python 3中,

‘/’ 运算符执行“ true”原始除法,即除出来是结果是多少就显示多少, 和参与的数据类型无关。但注意结果的数据类型都是小数float型(这点和pyton2不同);

‘//’运算是除完后强制取整数部分(注意,不是四舍五入),其结果的数据类型,取决于参与计算的数据类型,两个都为整数则结果为整数;其中有一个是float小数,则整个结果为小数;两个都为小数,则结果也是小数

 a / b # = 1.5e / b # = 5.0a // b # = 1a // c # = 1.0import operator# operator 模块接收两个算术参数operator.truediv(a, b)#输出 1.5operator.floordiv(a, b)= 1#输出 1operator.floordiv(a, c)#输出 1.0

内置数据类型之间相除后的返回数据类型:

 int and int ( Python 2 中返回 int整数结果,Python 3 中返回 float小数结果)int and float (返回 float)int and complex (返回 complex 复数)float and float (返回  float)float and complex (返回  complex)complex and complex (返回 complex)

Addition 加法

a, b = 1, 2
用 "+" 操作符:
a + b 
# = 3# 用 "in-place" "+=" 进行变量的添加和重赋值:a += b # a = 3 (相当于 a = a + b,对变量操作并重赋值了)import operatoroperator.add(a, b)# 输出 5  注意:a变量在上面一行代码变成3了a = operator.iadd(a, b)# a = 5 相当于 a = a + b,对变量操作并重赋值了 

内置数据类型之间相加后返回的数据类型:

int and int (返回 int)
int and float (返回 float)
int and complex (返回 complex)
float and float (返回 float)
float and complex (返回 complex)
complex and complex (返回 complex)

注意:‘+’运算符也用于连接字符串、列表和元组

 "first string " + "second string"#输出: 'first string second string'[1, 2, 3] + [4, 5, 6]#输出:[1, 2, 3, 4, 5, 6]

取幂运算

 a, b = 2, 3(a ** b)#= 8pow(a, b)#= 8import mathmath.pow(a, b)= 8.0 (float小数,不支持complex复数)import operatoroperator.pow(a, b)#= 8

内置的pow和数学模块math的pow之间的另一个区别是,内置的pow可以接受三个参数

 a, b, c = 2, 3, 2pow(2, 3, 2)#  输出0,计算等效于 (2 ** 3)% 2,但根据Python文档,直接这样写更有效而不是调用pow函数

特殊函数

函数math.sqrt(x)计算x的平方根

 import mathimport cmathc = 4math.sqrt(c)#输出 2.0 ( float小数,不支持complex复数 )cmath.sqrt(c)#输出 (2+0j) (提供complex复数支持)

若要计算其他根,如立方根,则将该数提到根的次数的倒数,这可以用任何指数函数或操作符来做。

 import mathx = 8math.pow(x, 1/3) #  计算结果为2.0 x**(1/3) # 计算结果为 2.0

函数math.exp(x)计算e ** x :

 math.exp(0)#输出1.0math.exp(1)#输出2.718281828459045 (e)

函数math.expm1(x)计算e ** x – 1。当x很小时,这比math.exp(x) – 1的精度要高得多

 math.expm1(0)#0.0math.exp(1e-6) - 1#1.0000004999621837e-06math.expm1(1e-6)#1.0000005000001665e-06完整结果: # 1.000000500000166666708333341666…

Trigonometric Functions 三角函数

 a, b = 1, 2import mathmath.sin(a)#返回弧度“ a”的正弦 0.8414709848078965math.cosh(b)#返回弧度'b'的反双曲余弦值 #输出: 3.7621956910836314math.atan(math.pi)# 返回以弧度为单位的反正切   1.2626272556789115 math.hypot(a, b) #  返回欧几里得范数,与math.sqrt(aa + bb)相同   2.23606797749979 

请注意math.hypot(x,y)是 点(x,y) 距原点(0,0)的向量的长度(或欧几里得距离), 所以要计算两个点(x1,y1)和(x2,y2)之间的欧几里得距离,可以使用这个函数:math.hypot(x2-x1, y2-y1)

要从弧度->度和度->弧度分别使用math.degrees和math.radians进行转换

 math.degrees(a)#输出: 57.29577951308232math.radians(57.29577951308232)#输出: 1.0

简易操作符

在应用程序中,通常需要这样的代码 :

a = a + 1

a = a * 2

对于这些操作有一个有效的快捷方式

 a += 1和a *= 2

任何数学运算符都可以使用在’=’字符之前,以进行简易运算:

 -= 递减变量 += 递增变量 *=  递乘变量 /= 递除变量//= 递除后取整变量%= 递取模后变量**= 递取 幂 变量

同样,对于按位运算符(^,| 等都是适用的

Subtraction 减法

 a, b = 1, 2使用“-”操作符 :b - a # 输出= 1import operator包含2个参数算术的函数 operator.sub(b, a)#输出= 1

内置数据类型之间相减后返回的数据类型:

 int and int (返回 int)int and float ( 返回  float)int and complex ( 返回  complex)float and float ( 返回  float)float and complex ( 返回  complex)complex and complex ( 返回  complex)

Multiplication 乘法

 a, b = 2, 3a * b # 输出 6import operatoroperator.mul(a, b)#输出 6

内置数据类型之间相乘后返回的数据类型:

 int and int ( 返回   int)int and float ( 返回   float)int and complex ( 返回   complex)float and float ( 返回  float)float and complex ( 返回  complex)complex and complex ( 返回   complex)

注意: *操作符也可用于字符串、列表和元组的重复连接 :

 3 * 'ab'#输出: 'ababab'3 * ('a', 'b')#元组被重复了 ('a', 'b', 'a', 'b', 'a', 'b')

Logarithms 对数

默认情况下,math.log函数计算以e为底数的对数,你可以选择指定一个底数作为第二个参数:

 import mathimport cmathmath.log(5)#输出 1.6094379124341003#基础参数可选,默认是math.e math.log(5, math.e) # 输出 1.6094379124341003cmath.log(5)#输出 (1.6094379124341003+0j)math.log(1000, 10)#输出:3.0 (常返回 float)cmath.log(1000, 10)#输出:(3+0j)

Log函数的特殊变体适用于不同的情况:

 # 以e - 1为底的对数(值较小时精度更高) math.log1p(5)#输出 1.791759469228055#对数底2math.log2(8)#输出 3.0#对数底10math.log10(100)#输出 2.0cmath.log10(100)#输出 (2+0j)

Modulus 模数

与许多其他语言一样,Python使用%运算符来取模

 3 % 4#输出310 % 2#输出 06 % 4#输出 2

或者使用 operator module:

import operator
operator.mod(3 , 4)#输出 3
operator.mod(10 , 2)#输出 0operator.mod(6 , 4)#输出 2

当然, 你也可以用负数 :

 -9 % 7#输出 59 % -7#输出 -5-9 % -7#输出 -2

如果需要找到整数除法和模数的结果,可以使用divmod函数:

 quotient, remainder = divmod(9, 4)# quotient = 2, remainder = 1 因为 4 * 2 + 1 == 9

今天的分享就到这里,禁止转载,违者必究!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css3 shapes是什么意思,如何在Web中使用CSS Shapes

布局一般都是遵循按行和列等线性原则,Web网站的布局到今天为止很大程度上受到这些原则的影响。虽然CSS Grid的出现让布局变得更好,更灵活,但相对于印刷媒体而言,Web布局总体上还是受到很好的限制,特别是内容流上。杂志…

C语言 · 8皇后问题

题目:8皇后问题 在88的棋盘上,放置8个皇后(棋子),使两两之间互不攻击。所谓互不攻击是说任何两个皇后都要满足: (1)不在棋盘的同一行; (2)不在棋盘…

wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件

不少朋友在系统用久了以后,都会用一些软件来帮忙清理系统中没用的文件,其中包括一些临时文件、无用文件等。但其实在 Windows 10 中,系统已经内置了自动定期清理临时文件的功能了。你还不知道?跟着我们来学习下吧。这个功能就隐藏…

服务器系统gho系统怎么安装系统,GHOST怎么重装系统?GHO文件安装系统教程

ghost映像文件就是系统文件,通过gho文件我们可以就进行系统的重装。不过对于电脑小白来说,不知道在哪里可以下载纯净的ghost文件,下载完成后也不清楚如何使用gho文件安装系统。那么下面就让小编教大家使用gho文件重装系统。相关教程&#xff…

Science | 谷岩/王朗团队揭示大脑中的免疫细胞竟是记忆遗忘的“主谋”

来源:BioArt记忆是大脑最重要的功能之一,也是人类研究最多的脑功能之一。记忆随时在发生,而遗忘如影随形。海马体位于大脑丘脑和内侧颞叶之间,是负责记忆的编码和存储的一个重要脑区。在这里,记忆信息被编码于一些神经…

halocn标定找旋转中心_机器人工具坐标系标定原理

工业机器人使用过程中经常在机器人末端法兰面安装不同的工具来满足实际生产需求,为了准确控制工具运动的位置与姿态,需要对工具所在坐标系进行标定。对于工业机器人来说,基坐标 与 末端法兰面所在坐标系 之间的关系在制作机器人的时候已经设定…

codeforces 264 B. Good Sequences(dp+数学的一点思想)

题目链接:http://codeforces.com/problemset/problem/264/B 题意:给出一个严格递增的一串数字,求最长的相邻两个数的gcd不为1的序列长度 其实这题可以考虑一下素因数,将每一个数都已是分解为几个不重复的素数,设dp[i]为…

app离线消息推送服务器,在线消息推送和离线消息推送(3)

首先介绍一下具体的功能设计。整个系统由服务端、客户端组成。客户端包含前端(浏览器端、pyqt桌面端)和后台(用于添加要推送的消息)。因为浏览器端不容易注意到实时提醒,所以我将实时提醒功能放到pyqt桌面端中实现(如托盘区闪烁等醒目的方式)。浏览器端中只对消息进…

基于深层卷积网络的手写数字识别 minist_「Tensorflow」基于CNN的数字OCR识别

导读 对于人类来说,识别手写的数字是一件非常容易的事情。我们甚至不用思考,就可以看出下面的数字分别是1,2,3。那机器如何来识别数字?本期将使用Tensorflow搭建卷积神经网络,进行手写数字的识别。代码可关…

2019年5G创新深度研究报告

来源:中信建投从历史上看,每一轮科技产业创新周期均主要由通信代际升级驱动,历时 5-8 年。我们认为 2017-2019 年为 4G 时代的稳定成熟期,而进入 2020 年,运营商加速投入 5G 网络建设,科技软硬件有望在运营…

鹰眼系统原理_山东首家露天焚烧鹰眼监控系统在我镇投入使用

露天冒烟着火,不用人员到现场,电子围栏就会锁定目标,自动报警,提醒监管人员立即现场处置。日前,莱西市院上镇新安装建设的污染源鹰眼监控系统投入使用,实现了环境监控全方位、自动化。据了解,这…

python requests是什么_python requests 连接池

本文从WordPress迁移而来, 查看全部WordPress迁移文章 背景:要从内部的一个web api拉取数据,要请求大概15万次左右(15万个ID,每个ID请求一次) 特点:一个host(也可以以IP直接请求)&am…

7nmarm微架构鲲鹏服务器芯片,中国电信服务器集采:同方鲲鹏服务器拿下6000万元份额...

原标题:中国电信服务器集采:同方鲲鹏服务器拿下6000万元份额(全球TMT2021年4月9日讯)日前,中国电信(2021年)服务器集采项目招标的GPU型服务器中标候选人公示发布。其中,鲲鹏、海光等国产CPU服务器占比进一步提升,标志着…

机器人的工作原理,这是我见过最详细的解析!

来源:网络很多人一听到“机器人”这三个字脑中就会浮现“外形酷炫”、“功能强大”、“高端”等这些词,认为机器人就和科幻电影里的“终结者”一样高端炫酷。其实不然,在本文中,我们将探讨机器人学的基本概念,并了解机…

linux mint 图标主题_如何在 Linux Mint 中更换主题

一直以来,使用 Cinnamon 桌面环境的 Linux Mint 都是一种卓越的体验。这也是为何我喜爱 Linux Mint的主要原因之一。-- Its Foss(作者)一直以来,使用 Cinnamon 桌面环境的 Linux Mint 都是一种卓越的体验。这也是为何我喜爱 Linux…

服务器物品展示框刷物品,我的世界1period;11period;2展示框刷物品bug | 手游网游页游攻略大全...

发布时间:2017-09-25我的世界惊现全新无限刷物品bug 服主大大都要注意了.那今天给大家分享一个玩家无意间发现的新的无限刷物品bug,而且还是在服务器中哦!那感兴趣的玩家不妨进来看看哦! 在一个rpg服务器玩 开小号召唤boss的时候发现的. ...标签:我的世界…

Nature:揭示人大脑类器官为何缺乏正常人脑特有的细胞亚型和复杂回路

来源:生物谷作为在实验室中通常利用人类干细胞培育出的大脑样组织三维球体,大脑类器官被吹捧为有潜力让科学家们在受控的实验室条件下研究大脑回路的形成。关于大脑类器官的讨论非常热闹,一些科学家认为它们将使得快速开发针对破坏性的脑部疾…

anaconda 怎么安装xlrd_Pyinstaller打包,文件太大了怎么办?

这是一个很长的故事,嫌长的直接看最后的结论事情经过上周接了个需求,写了个小工具给客户,他要求打包成exe文件,这当然不是什么难事。因为除了写Python的,绝大多数人电脑里都没有Python编译器,所以打包成exe…

2017.4.07 js 中的function 实现的方式

函数分为FD (函数定义),FE(函数表达式) ,函数构造器得到的函数(1) FD 的栗子:function getTaste(){ .......}解析器遇到上面的function关键字,会解析上面的代码为函数定义的情况,凡…