运算符是代表一定运算功能的符号,可以对常量、变量等进行处理。由各种运算符和运算对象组成的式子称为表达式。
算数运算符用于对算数运算对象进行算术运算。由算数运算符与算数运算对象组成的式子称为算术运算表达式。
运算符 | 名称 | 算数运算表达式实例 | 表达式结果(设 a = 3,b = 4) |
---|---|---|---|
+ | 加 | a + b | 7 |
- | 减 | a - b | -1 |
* | 乘 | a * b | 12 |
/ | 除 | a / b | 0.75 |
% | 取模 | a % b | 3 |
** | 幂 | a ** b | 64 |
// | 整除 | a // b | 0 |
算数运算符两边的操作数一般为整型或浮点型,特殊情况下也可以是布尔类型或复数类型。当参与算术运算的两个操作数是整型或浮点型时,其运算结果类型也是整型或浮点型。
print(2 / 3) # 一般情况下,python中的除法运算结果均为 浮点数
print(2 // 3) # 只有当整除时,才会得到整型的结果
关系运算符用来比较两个对象之间的关系。对象可以是数或字符串等常量、变量或表达式。由关系运算符与比较对象组成的表达式称为关系运算表达式。关系表达式的结果为真返回True,否则返回 False。
运算符 | 描述 | 实例 | 表达式结果(设 a = 20,b = 30) |
---|---|---|---|
== | 等于 | a == b | False |
!= | 不等于 | a != b | True |
> | 大于 | a > b | False |
< | 小于 | a < b | True |
>= | 大于等于 | a >= b | False |
<= | 小于等于 | a <= b | True |
赋值运算符用来将表达式的结果赋给变量。由赋值运算符与赋值运算对象组成的式子称为赋值运算表达式。
运算符 | 名称 | 实例 | 表达式结果(设 a = 4, b = 3, c = 2) |
---|---|---|---|
= | 简单赋值运算符 | c = a + b | c = 7 |
+= | 加法赋值运算符 | c += a 等价于 c = c + a | c = 6 |
-= | 减法赋值运算符 | c -= a 等价于 c = c - a | c = -2 |
*= | 乘法赋值运算符 | c *= a 等价于 c = c * a | c = 8 |
/= | 除法赋值运算符 | c /= a 等价于 c = c / a | c = 0.5 |
%= | 取模赋值运算符 | c %= a 等价于 c = c % a | c = 2 |
**= | 幂赋值运算符 | c **= a 等价于 c = c ** a | c = 16 |
//= | 取整除赋值运算符 | c //= a 等价于 c = c // a | c = 0 |
逻辑运算符用来判断逻辑运算对象之间的关系。由逻辑运算符与逻辑运算对象组成的式子称为逻辑运算表达式。
运算符 | 名称 | 逻辑表达式 | 描述 |
---|---|---|---|
and | 逻辑“与” | x and y | x 为 True 或非 0,返回 y,否则返回 x |
or | 逻辑“或” | x or y | x 为 True 或非 0,返回 x,否则返回 y |
not | 逻辑“非” | not x | x 为 True 或非 0,返回 False,否则返回 True |
'''
其实不用看表格描述,只要清楚逻辑运算中(中学数学有教过的)
与:两边同真才为真
或:一边为真就为真
非:真的非为假
真值:除 0 以外的其余一切均为真值
'''
位运算符用来把两个运算对象按照二进制进行位运算。由位运算符与位运算对象组成的式子称为位运算表达式。
运算符 | 名称 | 实例 | 表达式结果(a = 60(0011 1100), b = 13(0000 1101)) |
---|---|---|---|
& | 按位与 | a & b | 12(0000 1100) |
| | 按位或 | a | b | 61(0011 1101) |
^ | 按位异或 | a ^ b | 49(0011 0001) |
~ | 按位取反 | ~ a | -61(1100 0011) |
<< | 左移位 | a << 2 | 240(1111 0000) |
>> | 右移位 | a >> 2 | 15(0000 1111) |
# 使用"^"运算符对字符加密和解密
key = input("请输入加密密钥: ")
enc = input("请输入要加密的字符: ")
dec = ord(key) ^ ord(enc) # 对字符加密
print("加密结果: ", chr(dec))
enc_1 = ord(key) ^ dec # 对字符解密
print("解密结果: ", chr(enc_1))
请输入加密密钥: 1
请输入要加密的字符: h
加密结果: Y
解密结果: h
成员运算符用来判断两个对象之间的关系。由成员运算符与成员运算对象组成的式子称为成员运算表达式。
运算符 | 描述 | 实例 | 结果 |
---|---|---|---|
in | 判断对象是否在序列中 | obj in sequence | obj 在 sequence 中返回 True,否则返回 False |
not in | 判断对象是否不在序列中 | obj not in sequence | obj 不在 sequence 中返回 True,否则返回 False |
ls = [3, 6, 5, '洛梦裳', '白浅予', '我的']
a = '3' in ls
b = 3 not in ls
print("a = ", a, "b = ", b)
a = False b = False
运算符 | 描述 | 实例 | 结果 |
---|---|---|---|
is | 判断两个标识符是不是引用自同一个对象 | x is y | 引用同一个对象返回 True, 否则返回 False |
is not | 判断两个标识符是不是引用自不同对象 | x is not y | 引用不同对象返回 True, 否则返回 False |
is 运算符, == 运算符和 operator 中的 eq() 区别:
a == b :比较对象a 和对象 b 的值是否相等。相等返回 True, 不相等返回 False。operator.eq(a, b) 类似。
a is b:比较对象a 和对象 b 是否有相同的引用,即 id 是否相等。相同的返回 True,否则返回 False。
a = 3
print("id(a) = ", id(a))
b = 3
print("id(b) = ", id(b))
c = '3'
print("id(c) = ", id(c))
res1 = a is b
res2 = b is not c
print("结果1: ", res1, "结果2: ", res2)
id(a) = 2526965727536
id(b) = 2526965727536
id(c) = 2526967051696
结果1: True 结果2: True
当多种运算符出现在同一个表达式中时,按照运算符的优先级决定运算次序,优先级高的运算将先得到处理。下表中等级1的优先级最高。
等级 | 运算符 | 名称 |
---|---|---|
1 | (), [], {} | 括号 |
2 | ** | 指数运算 |
3 | ~, +, - | 按位取反,一元加号和减号 |
4 | *, /, %, // | 乘,除,取模和取整除 |
5 | +, - | 加法,减法 |
6 | >>, << | 右移,左移运算符 |
7 | & | 位与 |
8 | ^, | | 异或,位或 |
9 | <, <=, >, >= | 比较运算符 |
10 | ==, != | 等于,不等于运算符 |
11 | =, %=, /=, //=, -=, +=, *=, **= | 赋值运算符 |
12 | is, is not | 身份运算符 |
13 | in, not in | 成员运算符 |
14 | not, and, or | 逻辑运算符 |
>>> i = 2
>>> ++i # 等价于 +(+i)
2
>>> --i # 等价于 -(-i)
2
>>> 2--3 # 等价于 2-(-3)
5
>>> i++
File "" , line 1
i++
^
SyntaxError: invalid syntax
>>> i--
File "" , line 1
i--
^
SyntaxError: invalid syntax
写在最后:
首先,如果本篇文章有任何错误,烦请读者告知!不胜感激!
其次,本篇文章仅用于日常学习以及学业复习,如需转载等操作请告知作者(我)一声!
最后,本文会持续修改和更新,如果对本分栏的其他知识也感兴趣,可以移步目录导航专栏,查看本分栏的目录结构,也更方便对于知识的系统总结!
兄弟姐妹们,点个赞呗!
感谢!笔芯!