如何在Python3中使用运算符进行数学运算

来自菜鸟教程
跳转至:导航、​搜索

介绍

数字在编程中非常常见。 它们用于表示屏幕尺寸、地理位置、金钱和积分、视频中经过的时间量、游戏头像的位置以及通过分配数字代码的颜色等内容。

能够在编程中有效地执行数学运算是一项需要培养的重要技能,因为您使用数字的频率很高。 尽管对数学的高层次理解当然可以帮助您成为更好的程序员,但这不是先决条件。 如果您没有数学背景,请尝试将数学视为完成您想要实现的目标的工具,以及提高逻辑思维的一种方式。

我们将使用 Python 最常用的两种数值数据类型,integersfloats

  • Integers 是整数,可以是正数、负数或 0(...、-101、...)。
  • Floats 是实数,它们包含一个小数点(如 9.0-2.25)。

本教程将介绍可用于 Python 中数字数据类型的运算符。

先决条件

您应该在您的计算机或服务器上安装 Python 3 并设置编程环境。 如果您没有设置编程环境,您可以参考本地编程环境或服务器上的编程环境适合您的操作的安装和设置指南系统(Ubuntu、CentOS、Debian 等)

运营商

operator 是表示操作的符号或函数。 例如,在数学中,加号或 + 是表示加法的运算符。

在 Python 中,我们将看到一些从数学中引入的熟悉的运算符,但我们将使用的其他运算符是特定于计算机编程的。

这是 Python 中与数学相关的运算符的快速参考表。 我们将在本教程中介绍以下所有操作。

手术 它返回什么
x + y xy 之和
x - y xy的区别
-X x 的符号改变
+x x的身份
x * y xy的乘积
x / y x 和 y 的商
x // 是的 xy 的地板除法商
x % y x / y 的剩余部分
x ** y xy 电源

我们还将介绍 复合赋值运算符 ,包括 +=*=,它们结合了算术运算符和 = 运算符。

加减

在 Python 中,加法和减法运算符的执行类似于数学。 实际上,您可以将 Python 编程语言用作计算器。

Info: 要跟随本教程中的示例代码,请通过运行 python3 命令在本地系统上打开 Python 交互式 shell。 然后,您可以通过在 >>> 提示符后添加示例来复制、粘贴或编辑示例。


让我们回顾一些例子,从整数开始:

print(1 + 5)
[secondary_label Output] 
6

我们可以初始化变量以代表整数值,而不是直接将整数传递给 print 语句:

a = 88
b = 103

print(a + b)
Output191

因为整数既可以是正数也可以是负数(也可以是 0),我们可以将负数与正数相加:

c = -36
d = 25

print(c + d)
Output-11

加法的行为与浮点数类似:

e = 5.5
f = 2.5

print(e + f)
Output8.0

因为我们将两个浮点数相加,Python 返回了一个带小数位的浮点值。

减法的语法与加法相同,不同之处在于您将运算符从加号 (+) 更改为减号 (-):

g = 75.67
h = 32

print(g - h)
Output43.67

在这里,我们从浮点数中减去一个整数。 如果方程中至少有一个数字是浮点数,Python 将返回一个浮点数。

一元算术运算

一元数学表达式仅由一个组件或元素组成,在 Python 中,加号和减号可用作单个元素与值配对以返回值的标识 (+),或更改值(-)。

虽然不常用,但加号表示值的标识。 我们可以使用带有正值的加号:

i = 3.3
print(+i)
Output3.3

当我们将加号与负值一起使用时,它也会返回该值的标识,在这种情况下,它将是一个负值:

j = -19
print(+j)
Output-19

对于负值,加号返回相同的负值。

或者,减号会更改值的符号。 因此,当我们传递一个正值时,我们会发现该值前面的减号将返回一个负值:

i = 3.3
print(-i)
Output-3.3

或者,当我们使用带负值的减号一元运算符时,将返回一个正值:

j = -19
print(-j)
Output19

由加号和减号指示的一元算术运算将在 +i 的情况下返回值的标识,或者在 -i 的情况下返回值的相反符号。

乘法和除法

像加减法一样,乘法和除法看起来与它们在数学中的表现非常相似。 我们将在 Python 中用于乘法的符号是 *,我们将用于除法的符号是 /

这是在 Python 中使用两个浮点值进行乘法的示例:

k = 100.1
l = 10.1

print(k * l)
Output1011.0099999999999

当您在 Python 3 中除法时,您的商将始终作为浮点数返回,即使您使用两个整数:

m = 80
n = 5

print(m / n)
Output16.0

这是 Python 2 和 Python 3 之间的 主要变化之一。 Python 3 的方法提供了一个分数答案,因此当您使用 /11 除以 2 时,将返回 5.5 的商。 在 Python 2 中,表达式 11 / 2 返回的商是 5

Python 2 的 / 运算符执行 地板除法 ,其中商 x 返回的数字是小于或等于 x 的最大整数。 如果您使用 Python 2 而不是 Python 3 运行上面的 print(80 / 5) 示例,您将收到 16 作为不带小数位的输出。

在 Python 3 中,您可以使用 // 来执行楼层划分。 表达式 100 // 40 将返回 2 的值。 当您需要商为整数时,除法很有用。

模数

% 运算符是取模,它返回余数而不是除法后的商。 例如,这对于查找是同一数字的倍数的数字很有用。

让我们看一下模数的作用:

o = 85
p = 15

print(o % p)
Output10

为了打破这一点,85 除以 15 返回 5 与余数 10 的商。 值 10 是此处返回的值,因为模运算符返回除法表达式的余数。

如果我们对模数使用两个浮点数,则将返回一个浮点值作为余数:

q = 36.0
r = 6.0

print(o % p)
Output0.0

在 36.0 除以 6.0 的情况下,没有余数,所以返回 0.0 的值。

力量

Python 中的 ** 运算符用于将左边的数字提高到右边的指数的幂。 也就是说,在表达式 5 ** 3 中,5 被提升到 3 次方。 在数学中,我们经常看到这个表达式被渲染为 5³,而真正发生的事情是 5 与自身相乘 3 次。 在 Python 中,我们将通过运行 5 ** 35 * 5 * 5 得到与 125 相同的结果。

让我们看一个带有变量的示例:

s = 52.25
t = 7

print(s ** t)
1063173305051.292

通过 ** 运算符将浮点数 52.25 提高到 7 的幂会导致返回较大的浮点值。

运算符优先级

在 Python 中,就像在数学中一样,我们需要记住,运算符将按优先顺序进行计算,而不是从左到右或从右到左。

如果我们看下面的表达式:

u = 10 + 10 * 5

我们可以从左到右阅读它,但请记住,乘法将首先完成,所以如果我们调用 print(u),我们将收到以下值:

Output60

这是因为 10 * 5 的计算结果为 50,然后我们添加 10 以返回 60 作为最终结果。

相反,如果我们想将值 10 添加到 10,然后将该总和乘以 5,我们可以像在数学中一样使用括号:

u = (10 + 10) * 5
print(u)
Output100

记住操作顺序的一种方法是通过首字母缩写词 PEMDAS

命令 代表
1 P P括号
2 E E指数
3 M M乘法
4 D D视觉
5 A A
6 S S减法

您可能熟悉操作顺序的另一个首字母缩写词,例如 BEDMASBODMAS。 无论什么首字母缩略词最适合您,在 Python 中执行数学运算时尽量记住它,以便返回您期望的结果。

赋值运算符

最常见的赋值运算符是您已经使用过的:等号 == 赋值运算符将右边的值赋给左边的变量。 例如,v = 23 将整数 23 的值赋给变量 v

编程时,通常使用复合赋值运算符对变量的值执行操作,然后将生成的新值赋给该变量。 这些复合运算符将算术运算符与 = 运算符组合在一起,因此对于加法,我们将 += 组合得到复合运算符 +=。 让我们回顾一下它的样子:

w = 5
w += 1
print(w)
Output6

首先,我们将变量 w 设置为等于 5 的值,然后我们使用 += 复合赋值运算符将右侧数字添加到左侧变量 [ X184X]然后将结果分配给w

复合赋值运算符在 for 循环 的情况下经常使用,当您想要多次重复一个过程时会使用它:

for x in range (0, 7):
    x *= 2
    print(x)
Output0
2
4
6
8
10
12

使用 for 循环,我们能够自动化 *= 运算符的过程,该过程将变量 w 乘以数字 2,然后将结果分配给变量 [X190X ] for 循环的下一次迭代。

对于本教程中讨论的每个算术运算符,Python 都有一个复合赋值运算符:

y += 1         # add then assign value

y -= 1            # subtract then assign value

y *= 2            # multiply then assign value

y /= 3            # divide then assign value

y // = 5      # floor divide then assign value

y **= 2           # increase to the power of then assign value

y %= 3            # return remainder then assign value

当需要逐步增加或减少事物时,或者当您需要自动化程序中的某些过程时,复合赋值运算符会很有用。

结论

本教程涵盖了您将与整数和浮点数值数据类型一起使用的许多运算符。 如果您想继续阅读 Python 中的数字,可以继续阅读 用于处理数字的内置 Python 3 函数

要了解有关其他数据类型的更多信息,请查看 Understanding Data Types in Python 3,并通过阅读 How To Convert Data Types in Python 3 了解如何转换数据类型。