欢迎来CILMY23的博客
本篇主题为 玩转 Python 表达式:探索赋值、位运算符到成员运算符的奥秘
个人主页:CILMY23-CSDN博客
Python系列专栏:http://t.csdnimg.cn/HqYo8
上一篇博客: 字符串处理技巧大揭秘:从基础到高级
C语言专栏:http://t.csdnimg.cn/hQ5a9
感谢观看,支持的可以给个一键三连,点赞关注+收藏。
本文目录
本文前言
继上次我们深入了解字符串的处理后,本期我们将了解python中的运算符以及各种运算符对应的表达式,在后面的学习我们会经常用到运算符
一、什么是运算符?
运算符是代表一定运算功能的符号,可以对常量、变量等进行处理。Python支持的运算符有算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符。由各种运算符和运算对象组成的式子称为表达式。
二、算术运算符
2.1 算术运算符概念
算术是数学中的一个基本概念,涉及对数字进行基本的数学运算,如加法、减法、乘法、除法等。在计算机编程中,算术通常指的是对数字进行各种数学运算的过程。
2.2 算术运算符及表达式
运算符 | 名称 | 例子 | 结果(a=3,b=4) |
+ | 加 | a+b | 7 |
- | 减 | a-b | -1 |
* | 乘 | a*b | 12 |
/ | 除 | a/b | 0.75 |
% | 取模 | a%b | 3 |
** | 幂 | a ** b | 81 |
// | 整除 | a // b | 0 |
算术运算符两边的操作数一般位整型或浮点型,特殊情况下也可以是布尔类型或复数类型,当参与算术运算的两个操作数是整型或浮点型时,其运算结果类型也是整型或浮点型。
例:求自然数268的逆序数并输出
解:
num = 268
n1 = num//100
n2 = num//10 % 10
n3 = num % 10
result = n3 * 100 + n2 * 10 + n1
print(f"原自然数:{num}\t",f"逆序自然数:{result}")
结果如下:
三、赋值运算符
3.1 赋值运算符概念
赋值运算符用来将表达式结果赋给变量。由赋值运算符与赋值运算对象组成的式子称为赋值运算表达式。
3.2 赋值运算符及其表达式
常用赋值运算符如下所示:
运算符 | 名称 | 例子 | 表达式结果(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 |
四、逻辑运算符
4.1 逻辑运算符的概念
逻辑运算符用来判断逻辑运算对象之间的关系。由逻辑运算符和逻辑运算对象组成的式子称为逻辑运算表达式。
4.2 逻辑运算符及逻辑表达式
常用逻辑运算符如下:
运算符 | 名称 | 逻辑表达式 | 描述 |
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 |
五、关系运算符
5.1 关系运算符概念
关系运算符用来比较两个对象之间的关系,对象可以是数或字符串等常量、变量或表达式。由关系运算符与比较对象组成的表达式称为关系运算表达式。关系表达式的结果为真返回True,否则返回False
5.2 关系运算符及表达式
常用关系运算符如下:
运算符 | 描述 | 例子 | 表达式结果(a=20,b=30) |
== | 等于 | a == b | False |
!= | 不等于 | a != b | True |
> | 大于 | a > b | False |
< | 小于 | a < b | True |
>= | 大于等于 | a >= b | False |
<= | 小于等于 | a <= b | True |
关系运算符的使用:
# 五、 关系运算符及其表达式
Bool = 3 > 1 > 2
# 等价于 3 > 1 and 1 > 2
print(Bool)
六、成员运算符
6.1 成员运算符概念
成员运算符用来判断两个对象之间的关系。由成员运算符与成员运算对象组成的式子称为成员运算表达式
6.2 成员运算符及其表达式
序列其实就是我们说的组合类型,Python 序列(Sequence)是指按特定顺序依次排列的一组数据,它们可以占用一块连续的内存,也可以分散到多块内存中。Python 中的序列类型包括字符串、列表(list)、元组(tuple)、字典(dict)和集合(set)。
常用成员运算符:
运算符 | 描述 | 实例 | 结果 |
in | 判断对象是否在序列中 | obj in sequence | obj在 sequence 中返回 True,否则返回 False |
not in | 判断是否对象不在序列中 | obj not in sequence | obj 不在 sequence 中返回 True,否则返回False |
例如:判断字串是否在字符串内
# 六、 成员运算符
str1 = "hello"
str2 = "hello world"
if str1 in str2:
print("str1 in str2")
else:
print("str1 not in str2")
结果如下:
七、身份运算符
7.1 身份运算符概念
身份运算符用来比较两个对象之间的存储单元,由身份运算符与身份运算对象组成的式子称为身份运算表达式。
7.2 身份运算符及其表达式
常用身份运算符:
运算符 | 描述 | 实例 | 结果 |
is | 判断两个标识符是否引用同一个对象 | x is y | 引用同一个对象返回True,否则返回False |
is not | 判断两个标识符是不是引用自不同对象 | x is not y | 引用同一个对象返回True,否则返回False |
7.3 身份运算符与关系运算符的区别
is 和 == 的区别在哪里呢?
其实is比较的是两个内存的存储单元是否一致,在我们创建变量的时候,会在内存中开辟空间,而a==b关系运算符仅仅是用来比较对象a和对象b的值是否相等,a is b 比较对象a和对象b的id(用来获取内存单元地址)是否相等。
八、位运算符
8.1 位运算符的概念
位运算符用来把两个运算对象按照二进制进行位运算。由位运算符与位运算对象组成的式子称为位运算表达式,可以了解一下C语言中的整型存储
【C语言】数据存储篇,内存中的数据存储----C语言整型,浮点数的数据在内存中的存储以及大小端字节序【图文详解】-CSDN博客
8.2 位运算符及其表达式
常用位运算符如下:
运算符 | 名称 | 实例 | 表达式结果(a = 60,b =13) |
& | 按位与 | 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) |
8.3 利用位运算符实现一个简易的加密器
使用 ‘^’运算符对字符加密和解密
其实利用的是异或同一个数两次就跟原数是没区别的
# 八、 位运算符
key = input("请输入要加密的密钥:")
enc = input("请输入要加密的字符:")
dec = ord(key) ^ ord(enc)
print("加密结果:", chr(dec))
enc = ord(key) ^ dec
print("解密结果:", chr(enc))
结果如下:
九、运算符优先级
Python中的运算符优先级决定了在没有括号的情况下,表达式中各个部分如何组合。
等级 | 运算符 | 名称 |
1 | (),[],{} | 括号 |
2 | ** | 幂运算 |
3 | ~,+,- | 按位取反,一元加号和减号 |
4 | *,/,%,// | 乘,除,取模和取整除 |
5 | +,- | 加法,减法 |
6 | >>,<< | 右移,左移运算符 |
7 | & | 位与 |
8 | ^,| | 异或,位或 |
9 | <,<=,>,>= | 比较运算符 |
10 | ==,!= | 等于、不等于运算符 |
11 | =,%=,/=,//=,-=,+=,*=,**= | 赋值运算符 |
12 | is , is not | 身份运算符 |
13 | in, not in | 成员运算符 |
14 | not , and ,or | 逻辑运算符 |
注意,当运算符优先级相同时,会按照从左到右的顺序进行运算,这被称为"左结合性"。例如,在表达式 a - b + c
中,尽管减法和加法具有相同的优先级,但会首先执行 a - b
,然后再加上 c
。
十、补充说明
(1)Python 中的一些运算符不仅可用于数字等运算,还可以用于对字符串、列表和元组等序列运算
(2)Python支持++i,--i运算符,但含义和其他语言中的不同
(3)不支持i++,i--运算符
例如:
# 十、补充说明
i = 5
print(++i) # +(+i)
print(--i) # -(-i)
print(i--3) # 5-(-3)
结果如下:
感谢各位同伴的支持,本期python就讲解到这啦,如果你觉得写的不错的话,可以给个一键三连,点赞,关注+收藏,若有不足,欢迎各位在评论区讨论。