介绍
数字在编程中极为常见。它们用于通过分配数字代码来表示诸如屏幕尺寸、地理位置、金钱和积分、视频中传递的时间、游戏头像的位置和颜色等内容。
能够在编程中有效地执行数学运算是一项需要培养的重要技能,因为您处理数字的频率很高。虽然对数学有高层次的理解肯定可以帮助你成为一个更好的程序员,但这不是先决条件。如果您没有数学背景,请尝试将数学视为实现您想要实现的目标的工具,并作为提高逻辑思维的一种方式。
我们将使用 Python 最常用的两种数字数据类型,整数和浮点数:
本教程将介绍可与 Python 中的数字数据类型一起使用的运算符。
运营商
一个操作者是一个符号或功能指示的操作。例如,在数学中,加号或 + 是表示加法的运算符。
在 Python 中,我们会看到一些从数学中带来的熟悉的运算符,但我们将使用的其他运算符是特定于计算机编程的。
这是 Python 中与数学相关的运算符的快速参考表。我们将在本教程中介绍以下所有操作。
手术 | 它返回什么 |
---|---|
x + y | 的总和x 与y |
x – y | x 和的区别y |
-X | 改变了符号 x |
+x | 身份 x |
x * y | x 和的产品y |
x / y | x 和 y 的商 |
x // y | 从地板分工商x 和y |
% y | 剩余的 x / y |
x**y | x 对y 权力 |
我们还将介绍复合赋值运算符,包括+=
和*=
,它们将算术运算符与运算符组合在一起=
。
加减
在 Python 中,加法和减法运算符的表现就像它们在数学中的表现一样。实际上,您可以将 Python 编程语言用作计算器。
让我们看一些例子,从整数开始:
print(1 + 5)
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 的/
运算符执行floor 除法,其中对于商x
,返回的数字是小于或等于 的最大整数x
。如果您print(80 / 5)
使用 Python 2 而不是 Python 3运行上面的示例,您将收到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 中,我们将125
通过运行5 ** 3
或获得相同的结果5 * 5 * 5
。
让我们看一个带有变量的例子:
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 arentheses |
2 | 乙 | Ë xponent |
3 | 米 | 中号ultiplication |
4 | D | d暂无报价参数 |
5 | 一种 | 一个ddition |
6 | 秒 | 小号ubtraction |
您可能熟悉操作顺序的另一个首字母缩写词,例如BEDMAS或BODMAS。无论哪种首字母缩略词最适合您,请在 Python 中执行数学运算时尽量记住它,以便返回您期望的结果。
赋值运算符
最常见的赋值运算符是您已经使用过的运算符:等号=
。该=
赋值操作符分配到左边的变量的权值。例如,v = 23
将整数的值赋给23
变量v
。
编程时,通常使用复合赋值运算符对变量的值执行操作,然后将结果新值分配给该变量。这些复合运算符将算术运算符与运算符组合在一起=
,因此对于加法,我们将结合+
使用=
以得到复合运算符+=
。让我们看看它是什么样子的:
w = 5
w += 1
print(w)
Output6
首先,我们将变量设置为w
等于 的值5
,然后我们使用+=
复合赋值运算符将右边的数字与左边变量的值相加,然后将结果赋值给w
。
在for 循环的情况下经常使用复合赋值运算符,当您想要多次重复一个过程时将使用它:
for x in range (0, 7):
x *= 2
print(x)
Output0
2
4
6
8
10
12
使用 for 循环,我们能够自动执行将*=
变量乘以w
数字2
然后将结果分配到变量中的运算符的过程,w
以便 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 函数处理数字。
要了解有关其他数据类型的更多信息,请查看了解 Python 3 中的数据类型,并通过阅读如何转换 Python 3 中的数据类型了解如何转换数据类型。