12.Python基本运算符

本文详细介绍了Python中的各种运算符,包括算数、比较、增量赋值、按位、逻辑、成员和身份运算符,以及它们的用法和实例。此外,还讨论了短路运算和运算符的优先级,帮助读者深入理解Python中的运算规则。
摘要由CSDN通过智能技术生成

0.运算符

运算符用于执行程序代码运算。
1 + 2 = 3
1  2是操作数,+ 是操作符。

1.算数运算符

1.1符号
运算符操作运算
+ 加加数 + 加数 = 和1 + 1 = 2
- 减被减数 - 减数 = 差2 - 0 = 2
* 乘乘数 * 乘数 = 积2 * 2 = 4
/ 除被除数 / 除数 = 商5 / 2 = 2.5
% 求余被除数 / 除数 = 商···余数5 % 2 = 2···1
** 幂底数 ** 指数 = 幂2 ** 3 = 8
// 整除被除数 / 除数 = 整商9 // 4 = 2(向下取整)
1.2实例
# 加法

print(1 + 1)
print(1 + 1.1)  # 2.1

# 减法
print(2 - 1)
print(2 - 1.0)  # 1.0

# 乘法
print(2 * 3)
print(2 * 3.0)  # 6.0

# 除法
print(3/3)  # 1.0

# 乘方
print(2 ** 4)
print(2 ** 4.0)  # 16.0

# 求余
print(9 % 2)
print(9 % 2.0)  # 1.0

# 整除
print(9 // 2)  # 4.5 向下取值4
print(-9 // 2)  # -4.5 向下取值为4.5

1.3输出
2
2.1
1
1.0
6
6.0
1.0
16
16.0
1
1.0
4
-5
1.4隐式计算
布尔值为
True  当成成1 去计算
False 当成成0 去计算

n = True
m = n * 2
print(m)  # 2

n = ('x' > 'x')
m = n * 2
print(m)  # 0

2.比较运算符

2.1符号
比较运算,结果被转为 True / False。
运算符描述返回值
> 大于a > b ( a 大于 b )True,否则为False
< 小于a < b ( a 小于 b )True,否则为False
== 等于a= b ( a 等于 b )True,否则为False
!= 不等于a != b ( a 不等于 b )True,否则为False
>=大于等于a >= b ( a 大于等于 b )True,否则为False
<= 小于等于a <= b ( a 小于等于 b )True,否则为False

2.2实例
print(2 > 1)
print(3 < 4)
print(3 * 2 == 6 * 1)
print(7 != 6)
print(2 >= 2)
print(3 <= 3)
2.3输出
True
True
True
True
True
True
2.4字符比较
字符串比较大小,会转为ASCII表对应的十进制数来比较。
ASCII编码范围在0-127,定义了128个单字节字符,
超过这个范围则需要转为Unicode编码表对应的十进制数来比较。

其中常用:
0-9:30-39
A-Z:65-90
a-z:95-122

两个字符串按左往右的顺序一位一位的依次做比较,前面比出大小就不用往后了!

在这里插入图片描述

print('abc' > 'bbc')  # False
print('10' > '5')  # False
3.增量赋值运算符
赋值符号左边的值称为`左值`,其他的都为`右值`
3.1符号
运算符描述对等
= 赋值将赋值符号 右边 的值赋值给 左边/
+= 加法赋值n += x, 左值先与右值相加,在把结果赋值给左值n = n + x
-= 减法赋值n -= x, 左值先与右值相减,在把结果赋值给左值n = n - x
*= 乘法赋值n *= x, 左值先与右值相乘,在把结果赋值给左值n = n * x
/= 除法赋值n /= x, 左值先与右值相除,在把结果赋值给左值n = n / x
%= 求余赋值n %= x 左值先与右值求余数,在把结果赋值给左值n = n % x
**= 幂赋值n **= x 左值先与右值求幂,在把结果赋值给左值n = n ** x
//= 整除赋值n **= x 左值先与右值整除,在把结果赋值给左值n = n // x
:= 海象运算符可在表达式内部为变量赋值,Python3.8 版本新增/
3.2实例
# 赋值

a = 1
print(a)  # 1

# 自加
a += 1
print(a)  # 2

# 自减
a -= 1
print(a)  # 1

# 自乘
a *= 2
print(a)  # 2

# 自除
a /= 2
print(a)  # 1.0

b = 2
# 自乘方
b **= 3
print(b)  # 8

# 自整除
b //= 2
print(b)  # 4

# 自求余
b %= 3
print(b)  # 1
# 海象运算符
"""
print(n := 1)  # 1
if (x:= 1):
    print(1)  # 1
"""
3.3输出
1
2
1
2
1.0
8
4
1

4.按位运算符

4.1符号
运算符描述实例
& 按位与参与运算的两个值都为 1 结果为 1,否则都为 01 & 1 值为 1
❘ 按位或参与运算的有一个值为 1 结果为 1,否则都为 01 ❘ 0 值为 1
^ 按位或参与运算的两个值不同时结果为1,否则都为 01 ^ 0 值为 1
~ 按位取反按位取反,把1变成0,把0变成1~ 0 值为 1
<< 左移二进制为全部左移n为,高位丢弃,低位补0num << 2
>> 右移二进制为全部右移n为,低位丢弃,高位补0num >> 2
4.2实例
print(1 & 5)
"""
0001 --> 1
0101 --> 5
----------
0001 --->1
"""

print(1 | 5)
"""
0001 --> 1
0101 --> 5
----------
0101 --->5
"""

print(1 ^ 5)
"""
0001 --> 1
0101 --> 5
----------
0100 --->4
"""

print(~1)  # 规律:~x=-(x+1)
print(~-1)  # 规律:~-x=-(x-1)

print(1 << 2)  # 值 << 左移动的位数  等出4
"""
0001 --> 1
----------
0100 --->4
"""

print(4 >> 2)  # 值 << 右移动的位数  等出4
"""
0100 --->4
----------
0001 --> 1
"""
4.3输出
1
5
4
-2
0
4
1

5.逻辑运算符

5.1运符号
运算符描述实例
and 与参与运算的两个值都为 1 结果为 1,否则都为 01 and 1 值为 1
or 或参与运算的有一个值为 1 结果为 1,否则都为 01 or 0 值为 1
not 非取反,把1变成0,把0变成1not 0 值为 1
5.2实例
print(True and True)
print(True and False)

print(True or False)
print(True or True)

print(not False)
print(not True)
5.3输出
True
False
True
True
True
False

6.成员运算符

判断某个个体是否在否个群体当中。
6.1运符号
运算符描述实例
in在指定序列中查找值,找到返回True,否则返回Falsex在y序列中返回True
not in在指定序列中查找值,没找到返回False,否则返回Truex没在y序列中返回True
6.2实例
str1 = 'abc'
list1 = ['a', 'b', 'c']

print('a' in str1)
print('a' in list1)

print('q' not in str1)
print('q' not in list1)
6.3输出
True
True
True
True

7.身份运算符

判断两个对象的id值是否相对。
7.1运符号
运算符描述实例
is判断两个标识符的引用是否为同一个对象,(id)x is x,返回True
is not判断两个标识符的引用是否为不同对象,(id)x is not x,返回False
== 判断值是否相等
is 判断id值是否相等
id值相等,值一定相等,值相等id值不一定相等。
7.2实例
num1 = 1
num2 = 1

print(num1 is num2)  # True
print(num1 is not num2)  # False

print(num1 == num2)  # True


list1 = [1, 2, 3]
list2 = [1, 2, 3]

print(list1 is list2)  # False
print(list1 is not list2)  # True

print(list1 == list2)  # True
# 注意:解释器中测试数字,字符串,Pycharm做了更多的优化,都是引用同一个值。
>>> num0 = 123456
>>> num1 = 123456
>>> num0 is num1
False
>>> num0 == num1
True
7.3输出
True
False
True
False
True
True

9.短路运算

 Python解释器在做布尔运算时,只要能提前确定计算结果,
 它就不会往后算了,直接返回结果。
print(1 and 2)  # 2
print(1 and 2 and 3)  # 3
print(1 and 0 and 2)  # 0
#           ↑ 到这里已经能确定结果了,直接返回这个值
print(1 and None and 2)  # None
#            ↑ 
print(1 or 2 or 3)  # 1
#     ↑ 
# 比较大小结果是布尔值, 计算大小是一个值
print(7 > 2 or 1)  # True
#       ↑  大小
print(7 + 2 or 1)
print(1 and 2 or 0)  # 2
#           ↑ 
print(not 1 or 2)
#              ↑ 
7 + 2 > 0 and 7 > 6 + 1 or 1 == 1
# 加括号分析,and两变加括号
(7 + 2 > 0) and (7 > 6 + 1) or (1 == 1)
print((7 + 2 > 0) and (7 > 6 + 1) or (1 == 1))  # True
#                                        ↑ 

10.优先级

在我们在编写的时候应该人为的规定好优先级,使用括号进行区分。
优先级符号运算
1**幂,最高优先级
2~ + -按位取反,一元运算符 加 减
3* / % //乘 ,除,求余,整除
4>> <<右,左位移
5&按位与
6^按位异或
7按位或
8<= < > >=大于等于,大于,小于,小于等于
9== !=等于,不等于
10= += -= *= /= %= //= **=赋值,先(加 减乘 ,除,求余,整除 ,幂)计算在赋值
11is ,is not身份运算
12in not in成员运算
13not and or逻辑非,逻辑与,逻辑或
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值