- Python基础
- Python - 首页
- Python - 概述
- Python - 历史
- Python - 特性
- Python vs C++
- Python - Hello World程序
- Python - 应用领域
- Python - 解释器
- Python - 环境搭建
- Python - 虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode系统
- Python - 字面量
- Python - 运算符
- Python算术运算符
- Python - 比较运算符
- Python - 赋值运算符
- Python - 逻辑运算符
- Python - 位运算符
- Python - 成员运算符
- Python - 身份运算符
- Python - 运算符优先级
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python控制语句
- Python - 控制流
- Python - 决策制定
- Python - if语句
- Python - if else
- Python - 嵌套if
- Python - match-case语句
- Python - 循环
- Python - for循环
- Python - for-else循环
- Python - while循环
- Python - break语句
- Python - continue语句
- Python - pass语句
- Python - 嵌套循环
- Python函数与模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅关键字参数
- Python - 位置参数
- Python - 仅位置参数
- Python - 可变参数
- Python - 变量作用域
- Python - 函数注解
- Python - 模块
- Python - 内置函数
- Python字符串
- Python - 字符串
- Python - 字符串切片
- Python - 修改字符串
- Python - 字符串连接
- Python - 字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 字符串练习
- Python列表
- Python - 列表
- Python - 访问列表项
- Python - 修改列表项
- Python - 添加列表项
- Python - 删除列表项
- Python - 循环遍历列表
- Python - 列表推导式
- Python - 排序列表
- Python - 复制列表
- Python - 合并列表
- Python - 列表方法
- Python - 列表练习
- Python元组
- Python - 元组
- Python - 访问元组项
- Python - 更新元组
- Python - 解包元组
- Python - 循环遍历元组
- Python - 合并元组
- Python - 元组方法
- Python - 元组练习
- Python集合
- Python - 集合
- Python - 访问集合项
- Python - 添加集合项
- Python - 删除集合项
- Python - 循环遍历集合
- Python - 合并集合
- Python - 复制集合
- Python - 集合运算符
- Python - 集合方法
- Python - 集合练习
- Python字典
- Python - 字典
- Python - 访问字典项
- Python - 修改字典项
- Python - 添加字典项
- Python - 删除字典项
- Python - 字典视图对象
- Python - 循环遍历字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python数组
- Python - 数组
- Python - 访问数组项
- Python - 添加数组项
- Python - 删除数组项
- Python - 循环遍历数组
- Python - 复制数组
- Python - 反转数组
- Python - 排序数组
- Python - 合并数组
- Python - 数组方法
- Python - 数组练习
- Python文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - OS文件/目录方法
- Python - OS路径方法
- 面向对象编程
- Python - OOPs概念
- Python - 类与对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装器类
- Python - 枚举
- Python - 反射
- Python错误与异常
- Python - 语法错误
- Python - 异常
- Python - try-except块
- Python - try-finally块
- Python - 抛出异常
- Python - 异常链
- Python - 嵌套try块
- Python - 用户自定义异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 结束线程
- Python - 线程命名
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护线程
- Python - 线程同步
- Python同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python网络编程
- Python - 网络编程
- Python - 套接字编程
- Python - URL处理
- Python - 泛型
- Python库
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python杂项
- Python - 日期与时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式化
- Python - 性能测量
- Python - 数据压缩
- Python - CGI编程
- Python - XML处理
- Python - GUI编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送邮件
- Python - 扩展
- Python - 工具/实用程序
- Python - GUIs
- Python高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用元类进行元编程
- Python - 模拟和存根
- Python - Monkey Patching
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - Humanize包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
- Python有用资源
- Python - 问答
- Python - 在线测验
- Python - 快速指南
- Python - 参考
- Python - 速查表
- Python - 项目
- Python - 有用资源
- Python - 讨论
- Python编译器
- NumPy编译器
- Matplotlib编译器
- SciPy编译器
Python算术运算符
Python算术运算符
Python算术运算符用于执行数学运算,例如对数字进行加法、减法、乘法、除法等等。算术运算符是二元运算符,因为它们作用于两个操作数。Python完全支持混合算术运算。也就是说,两个操作数可以是两种不同的数字类型。在这种情况下,…
算术运算符类型
下表列出了Python中所有可用的算术运算符
运算符 | 名称 | 示例 |
---|---|---|
+ | 加法 | a + b = 30 |
- | 减法 | a – b = -10 |
* | 乘法 | a * b = 200 |
/ | 除法 | b / a = 2 |
% | 取模 | b % a = 0 |
** | 指数 | a**b =10**20 |
// | 地板除 | 9//2 = 4 |
让我们用例子来学习这些运算符。
加法运算符
加法运算符用“+”符号表示。它是一个基本的算术运算符。它将两侧的两个数值操作数相加,并返回加法结果。
加两个整数的示例
在下面的示例中,两个整数变量是“+”运算符的操作数。
a=10 b=20 print ("Addition of two integers") print ("a =",a,"b =",b,"addition =",a+b)
它将产生以下输出−
Addition of two integers a = 10 b = 20 addition = 30
加整数和浮点数的示例
整数和浮点数相加的结果是浮点数。
a=10 b=20.5 print ("Addition of integer and float") print ("a =",a,"b =",b,"addition =",a+b)
它将产生以下输出−
Addition of integer and float a = 10 b = 20.5 addition = 30.5
加两个复数的示例
将浮点数加到复数的结果是复数。
a=10+5j b=20.5 print ("Addition of complex and float") print ("a=",a,"b=",b,"addition=",a+b)
它将产生以下输出−
Addition of complex and float a= (10+5j) b= 20.5 addition= (30.5+5j)
减法运算符
减法运算符用“-”符号表示。它从第一个操作数中减去第二个操作数。如果第二个操作数较大,则结果为负数。
减去两个整数的示例
第一个示例显示了两个整数的减法。
a=10 b=20 print ("Subtraction of two integers:") print ("a =",a,"b =",b,"a-b =",a-b) print ("a =",a,"b =",b,"b-a =",b-a)
结果−
Subtraction of two integers a = 10 b = 20 a-b = -10 a = 10 b = 20 b-a = 10
减去整数和浮点数的示例
整数和浮点数的减法遵循相同的原则。
a=10 b=20.5 print ("subtraction of integer and float") print ("a=",a,"b=",b,"a-b=",a-b) print ("a=",a,"b=",b,"b-a=",b-a)
它将产生以下输出−
subtraction of integer and float a= 10 b= 20.5 a-b= -10.5 a= 10 b= 20.5 b-a= 10.5
减去复数的示例
在涉及复数和浮点数的减法中,参与运算的是实部。
a=10+5j b=20.5 print ("subtraction of complex and float") print ("a=",a,"b=",b,"a-b=",a-b) print ("a=",a,"b=",b,"b-a=",b-a)
它将产生以下输出−
subtraction of complex and float a= (10+5j) b= 20.5 a-b= (-10.5+5j) a= (10+5j) b= 20.5 b-a= (10.5-5j)
乘法运算符
“*”(星号)符号在Python中定义为乘法运算符(与许多其他语言一样)。它返回其两侧两个操作数的乘积。如果任何一个操作数为负数,则结果也为负数。如果两者都为负数,则结果为正数。更改操作数的顺序不会更改结果。
乘以两个整数的示例
a=10 b=20 print ("Multiplication of two integers") print ("a =",a,"b =",b,"a*b =",a*b)
它将产生以下输出−
Multiplication of two integers a = 10 b = 20 a*b = 200
乘以整数和浮点数的示例
在乘法中,浮点操作数可以具有标准十进制点表示法或科学表示法。
a=10 b=20.5 print ("Multiplication of integer and float") print ("a=",a,"b=",b,"a*b=",a*b) a=-5.55 b=6.75E-3 print ("Multiplication of float and float") print ("a =",a,"b =",b,"a*b =",a*b)
它将产生以下输出−
Multiplication of integer and float a = 10 b = 20.5 a-b = -10.5 Multiplication of float and float a = -5.55 b = 0.00675 a*b = -0.037462499999999996
乘以复数的示例
对于涉及一个复数操作数的乘法运算,另一个操作数将乘以实部和虚部。
a=10+5j b=20.5 print ("Multiplication of complex and float") print ("a =",a,"b =",b,"a*b =",a*b)
它将产生以下输出−
Multiplication of complex and float a = (10+5j) b = 20.5 a*b = (205+102.5j)
除法运算符
“/” 符号通常称为正斜杠。除法运算的结果是分子(左操作数)除以分母(右操作数)。如果任何一个操作数为负数,则结果为负数。由于无限大无法存储在内存中,如果分母为 0,Python 会引发 ZeroDivisionError 错误。
在 Python 中,除法运算的结果始终是浮点数,即使两个操作数都是整数。
两个数字相除的示例
a=10 b=20 print ("Division of two integers") print ("a=",a,"b=",b,"a/b=",a/b) print ("a=",a,"b=",b,"b/a=",b/a)
它将产生以下输出−
Division of two integers a= 10 b= 20 a/b= 0.5 a= 10 b= 20 b/a= 2.0
两个浮点数相除的示例
在除法中,浮点操作数可以采用标准小数点表示法或科学计数法。
a=10 b=-20.5 print ("Division of integer and float") print ("a=",a,"b=",b,"a/b=",a/b) a=-2.50 b=1.25E2 print ("Division of float and float") print ("a=",a,"b=",b,"a/b=",a/b)
它将产生以下输出−
Division of integer and float a= 10 b= -20.5 a/b= -0.4878048780487805 Division of float and float a= -2.5 b= 125.0 a/b= -0.02
复数相除的示例
当其中一个操作数是复数时,另一个操作数与复数对象的实部和虚部进行除法运算。
a=7.5+7.5j b=2.5 print ("Division of complex and float") print ("a =",a,"b =",b,"a/b =",a/b) print ("a =",a,"b =",b,"b/a =",b/a)
它将产生以下输出−
Division of complex and float a = (7.5+7.5j) b = 2.5 a/b = (3+3j) a = (7.5+7.5j) b = 2.5 b/a = (0.16666666666666666-0.16666666666666666j)
如果分子为 0,则除法的结果始终为 0,除非分母为 0,在这种情况下,Python 会引发 ZeroDivisionError 错误,并显示“除以零”错误消息。
a=0 b=2.5 print ("a=",a,"b=",b,"a/b=",a/b) print ("a=",a,"b=",b,"b/a=",b/a)
它将产生以下输出−
a= 0 b= 2.5 a/b= 0.0 Traceback (most recent call last): File "C:\Users\mlath\examples\example.py", line 20, in <module> print ("a=",a,"b=",b,"b/a=",b/a) ~^~ ZeroDivisionError: float division by zero
取模运算符
Python 将 "%" 符号定义为取模运算符(也称为模运算符)。它返回分母除以分子后得到的余数。它也可以称为余数运算符。取模运算符的结果是在整数商之后剩下的数字。例如,10 除以 3,商为 3,余数为 1。因此,10%3(通常读作 10 模 3)的结果为 1。
整数取模运算示例
如果两个操作数都是整数,则模值也是整数。如果分子完全可被分母整除,则余数为 0。如果分子小于分母,则模值等于分子。如果分母为 0,Python 会引发 ZeroDivisionError 错误。
a=10 b=2 print ("a=",a, "b=",b, "a%b=", a%b) a=10 b=4 print ("a=",a, "b=",b, "a%b=", a%b) print ("a=",a, "b=",b, "b%a=", b%a) a=0 b=10 print ("a=",a, "b=",b, "a%b=", a%b) print ("a=", a, "b=", b, "b%a=",b%a)
它将产生以下输出−
a= 10 b= 2 a%b= 0 a= 10 b= 4 a%b= 2 a= 10 b= 4 b%a= 4 a= 0 b= 10 a%b= 0 Traceback (most recent call last): File "C:\Users\mlath\examples\example.py", line 13, in <module> print ("a=", a, "b=", b, "b%a=",b%a) ~^~ ZeroDivisionError: integer modulo by zero
浮点数取模运算示例
如果任何一个操作数是浮点数,则模值始终是浮点数。
a=10 b=2.5 print ("a=",a, "b=",b, "a%b=", a%b) a=10 b=1.5 print ("a=",a, "b=",b, "a%b=", a%b) a=7.7 b=2.5 print ("a=",a, "b=",b, "a%b=", a%b) a=12.4 b=3 print ("a=",a, "b=",b, "a%b=", a%b)
它将产生以下输出−
a= 10 b= 2.5 a%b= 0.0 a= 10 b= 1.5 a%b= 1.0 a= 7.7 b= 2.5 a%b= 0.20000000000000018 a= 12.4 b= 3 a%b= 0.40000000000000036
Python 不允许使用复数作为取模运算的操作数。它会抛出 TypeError: unsupported operand type(s) for % 错误。
指数运算符
Python 使用 **(双星号)作为指数运算符(有时称为“乘方”运算符)。因此,对于 a**b,可以说 a 的 b 次方,或者 a 的 b 次幂。
如果指数表达式中的两个操作数都是整数,则结果也是整数。如果其中一个是浮点数,则结果是浮点数。类似地,如果其中一个操作数是复数,则指数运算符返回一个复数。
如果底数为 0,则结果为 0;如果指数为 0,则结果始终为 1。
指数运算符示例
a=10 b=2 print ("a=",a, "b=",b, "a**b=", a**b) a=10 b=1.5 print ("a=",a, "b=",b, "a**b=", a**b) a=7.7 b=2 print ("a=",a, "b=",b, "a**b=", a**b) a=1+2j b=4 print ("a=",a, "b=",b, "a**b=", a**b) a=12.4 b=0 print ("a=",a, "b=",b, "a**b=", a**b) print ("a=",a, "b=",b, "b**a=", b**a)
它将产生以下输出−
a= 10 b= 2 a**b= 100 a= 10 b= 1.5 a**b= 31.622776601683793 a= 7.7 b= 2 a**b= 59.290000000000006 a= (1+2j) b= 4 a**b= (-7-24j) a= 12.4 b= 0 a**b= 1.0 a= 12.4 b= 0 b**a= 0.0
地板除运算符
地板除也称为整数除法。Python 使用 //(双正斜杠)符号来表示。与返回余数的取模运算不同,地板除返回参与运算的操作数的商。
如果两个操作数都是正数,则地板除运算符返回一个去除小数部分后的数字。例如,9.8 除以 2 的地板除结果为 4(纯除法结果为 4.9,去除小数部分,结果为 4)。
但是,如果其中一个操作数为负数,则结果将舍入到远离零的方向(朝负无穷大)。-9.8 除以 2 的地板除结果为 -5(纯除法结果为 -4.9,远离 0 舍入)。
地板除运算符示例
a=9 b=2 print ("a=",a, "b=",b, "a//b=", a//b) a=9 b=-2 print ("a=",a, "b=",b, "a//b=", a//b) a=10 b=1.5 print ("a=",a, "b=",b, "a//b=", a//b) a=-10 b=1.5 print ("a=",a, "b=",b, "a//b=", a//b)
它将产生以下输出−
a= 9 b= 2 a//b= 4 a= 9 b= -2 a//b= -5 a= 10 b= 1.5 a//b= 6.0 a= -10 b= 1.5 a//b= -7.0
算术运算符的优先级和结合性
运算符 | 描述 | 结合性 |
---|---|---|
** | 指数运算符 | 指数运算符的结合性为从右到左。 |
%, *, /, // | 取模、乘法、除法和地板除 | 取模、乘法、除法和地板除运算符的结合性为从左到右。 |
+, – | 加法和减法运算符 | 加法和减法运算符的结合性为从左到右。 |
下表显示了 Python 中算术运算符的优先级和结合性。
与复数一起使用的算术运算符
当两个操作数都是复数对象时,算术运算符的行为略有不同。
复数的加法和减法
复数的加法和减法是分别对实部和虚部进行简单的加法/减法运算。
a=2.5+3.4j b=-3+1.0j print ("Addition of complex numbers - a=",a, "b=",b, "a+b=", a+b) print ("Subtraction of complex numbers - a=",a, "b=",b, "a-b=", a-b)
它将产生以下输出−
Addition of complex numbers - a= (2.5+3.4j) b= (-3+1j) a+b= (-0.5+4.4j) Subtraction of complex numbers - a= (2.5+3.4j) b= (-3+1j) a-b= (5.5+2.4j)
复数的乘法
复数的乘法类似于代数中两个二项式的乘法。如果 "a+bj" 和 "x+yj" 是两个复数,则它们的乘法由以下公式给出:
(a+bj)*(x+yj) = ax+ayj+xbj+byj2 = (ax-by)+(ay+xb)j
例如:
a=6+4j b=3+2j c=a*b c=(18-8)+(12+12)j c=10+24j
下面的程序验证了结果:
a=6+4j b=3+2j print ("Multplication of complex numbers - a=",a, "b=",b, "a*b=", a*b)
要了解两个复数的除法是如何进行的,我们应该使用复数的共轭。Python 的复数对象有一个 conjugate() 方法,它返回一个虚部符号相反的复数。
>>> a=5+6j >>> a.conjugate() (5-6j)
复数的除法
要除以两个复数,需要将分子和分母都乘以分母的共轭。
a=6+4j b=3+2j c=a/b c=(6+4j)/(3+2j) c=(6+4j)*(3-2j)/3+2j)*(3-2j) c=(18-12j+12j+8)/(9-6j+6j+4) c=26/13 c=2+0j
要验证,请运行以下代码:
a=6+4j b=3+2j print ("Division of complex numbers - a=",a, "b=",b, "a/b=", a/b)
Python 中的 Complex 类不支持取模运算符 (%) 和地板除运算符 (//)。