Python教程 - 运算符

在编程语言中,若要执行一个"表达式"的计算,就必须配合使用"操作数"和"运算符"。操作数是指参与计算的具体数值,而运算符则是代表特定运算功能的符号。比如在表达式 3+4 中,数字 3 和 4 就是操作数,加号 (+) 则是运算符,整个这样的算术组合即构成了一个运算表达式。本篇文章将会介绍 Python 语言中所包含的各种运算符。

赋值运算符

赋值运算符是=,将等号右边的结果(值)赋给等号左边的变量。例如:

  • a = 'hello':将字符串'hello'赋值给变量a。

  • b = 123:将数字123赋值给变量b。

  • c = [1, 2, 3]:将列表[1, 2, 3]赋值给变量c。

算术运算符

算术运算符包括常见的加、减、乘、除符号,用于对数字进行数学运算。

需要注意的是,左边的变量是右边运算后的结果,这与一般的数学表达式有所不同。

运算符 说明 范例 结果
+ 加法 a = 1+2 a = 3
- 减法 a = 20-12 a = 8
* 乘法 a = 2*3 a = 6
/ 除法 a = 9/2 a = 4.5
// 除法取整数 (无条件舍去) a = 9//2 a = 4
% 余数 a = 9%2 a = 1
** 次方 a = 2**3 a = 8

使用算术运算符进行计算时,遵循"先乘除后加减"的规则,并优先计算括号内的表达式。

ini 复制代码
a = 3*(3+2)
print(a)   # 15

算术运算符常与赋值运算符一起使用,以实现变量的递增或递减。

css 复制代码
a = 1       # a 赋值 1
a = a + 1   # a 赋值 1 + 1 ( 此时右边的 a 等于 1 )
print(a)    # 2

b = 5       # b 赋值 5
b = b - 1   # b 赋值 5 - 1 ( 此时右边的 b 等于 5 )
print(b)    # 4

如果需要开根号,可以使用**0.5来实现。

bash 复制代码
print(4**0.5)   # 2.0

除了单纯的运算,也可以将算术运算符和赋值运算符组合,变成复合类型的运算符。

运算符 范例 等同于
+= a += 1 a = a + 1
-= a -= 1 a = a - 1
*= a *= 2 a = a * 2
/= a /= 2 a = a / 2
//= a //= 3 a = a // 3
%= a %= 3 a = a % 3
**= a **= 2 a = a ** 2

比较运算符

比较运算符用于比较两个值的大小,结果只有True或False两种,常用于逻辑判断。比较运算符包括:

注意,因为单一个等号(=)是赋值运算符,所以如果要进行相等的比较,必须使用两个等号(==)。

运算符 说明 范例
> 大于 (a 是否大于 b) a > b
< 小于 (a 是否小于 b) a < b
>= 大于等于 (a 是否大于等于 b) a >= b
<= 小于等于 (a 是否小于等于 b) a <= b
== 等于 (a 是否等于 b) a == b
!= 等于 (a 是否不等于 b) a != b
css 复制代码
a = 5
b = 3

print(a < b)   # False
print(b <= a)  # True
print(a != b)  # True
print(a == b)  # False

逻辑运算符

逻辑运算符"可以判断 and(与)、or(或)和 not(非)三种逻辑状态。逻辑运算符包括:

比较运算符可以使用 & 代替 and,| 代替 or。

and

当 a 是 True,b 也是 True,结果是 True,但只要 a、b 其中一个是 False,结果就是 False。

ini 复制代码
a = True
b = False
c = True

print(a & b)     # False
print(a and b)   # False
print(a & c)     # True
print(a and c)   # True

or

只要 a、b 其中一个是 True,结果就是 True。

ini 复制代码
a = True
b = False
c = True

print(a | b)     # True
print(a or b)    # True
print(a | c)     # True
print(a or c)    # True

not

如果 a 为 True,not a 的结果 False,如果 a 为 False,not a 的结果 True。

ini 复制代码
a = True
b = False

print(not a)   # False
print(not b)   # True

逻辑运算符可以结合比较运算符,做更复杂的逻辑判断。

css 复制代码
a = 1
b = 2
c = 3

print((a>b)&(c>b))        # False
print((a>b)|(c>b))        # True
print(not ((a>b)&(c>b)))  # True ( 因为 (a>b)&(c>b) 为 False )

in 与 is 运算符

如果有 a 和 b 两个变量,使用 in 可以判断 b 是否包含 a,使用 is 可以判断 a 和 b 是否为相同,如果判断包含或相同,返回 True,否则返回 False。

ini 复制代码
a = 2
b = 4
c = [1,2,3]
print(a in c)    # True
print(b in c)    # False

x = [1,2,3]
y = [1,2,3]
z = x
print(x is y)    # False
print(x is z)    # True

位运算符

在程序语言的底层,所有数值都是以二进制形式(0和1)表示。位运算符针对每个数值的二进制字符进行位运算。下面的表格使用 4 (二进位 0100) 和 5 ( 二进位 0101 ) 为例子。

运算符 说明 范例 结果
& 位且,二进位数字「完全相同」的部分,不同的部分以 0 取代。 4&5,使用 0100 和 0101 比较后,返回 0100 4
位或,二进位数字「只要有一个为 1 」的部分都为 1。 4&5,使用 0100 和 0101 比较后,返回 0101 5
位异或,二进位数字「完全相同」的部分都为 0,不同的部分以 1 取代。 4^5,使用 0100 和 0101 比较后,返回 0001 1
~ 位相反,二进位数字 0 变成 1,1 变成 0 ~4,0100 相反为 1011 -5
>> 位右移,将二进位数字往右移动指定位数,左侧补 0 4>>2,0100 往右移动两位 0001 1
<< 位左移,将二进位数字往左移动指定位数,右侧补 0 5<<2,0101 往左移动两位 10100 20
bash 复制代码
print(4&5)    # 4
print(4|5)    # 5
print(4^5)    # 1
print(~4)     # -5
print(4>>2)   # 1
print(5<<2)   # 20

跨列运算符

在遇到"算式过长,需要换行"的代码或运算式时,除了使用括号包裹以换行计算,也可以使用"反斜杠\"放在一行的最后,以实现代码的换行。下方的例子执行后,a 和 b 的结果会是相同的。

注意,使用跨列运算符后不得加上空格或其它字元

ini 复制代码
a = ( 1 + 2 + 3 +
      4 + 5 + 6 +
      7 + 8 + 9 )

b = 1 + 2 + 3 + \
    4 + 5 + 6 + \
    7 + 8 + 9
相关推荐
这个男人是小帅21 分钟前
【GAT】 代码详解 (1) 运行方法【pytorch】可运行版本
人工智能·pytorch·python·深度学习·分类
码上一元2 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
小白学大数据3 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python
Shy9604184 小时前
Doc2Vec句子向量
python·语言模型
枫叶_v4 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
杜杜的man5 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang
java小吕布5 小时前
Java中Properties的使用详解
java·开发语言·后端
2401_857610036 小时前
Spring Boot框架:电商系统的技术优势
java·spring boot·后端
秀儿还能再秀7 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
阿_旭8 小时前
如何使用OpenCV和Python进行相机校准
python·opencv·相机校准·畸变校准