运算符与表达式
表达式:由变量、常量和运算符组成的式子。
算数运算符
算数运算表达式
- 功能:进行符号对象的算术运算,不会修改变量的值
- 值:相关算术运算的结果
print(4 + 1) # 5
a = 10
b = 3
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
算数运算符的优先级
赋值运算符
赋值运算表达式
- 格式:变量 = 表达式
- 功能:计算等号右侧“表达式”的值,并赋值给等号左侧的“变量”
- 值:赋值结束后变量的值
a = 2
print(a) # 2
a += 2
print(a) # 4
比较运算符
关系运算表达式
- 格式:表达式1 关系运算符 表达式2
- 功能:计算表达式1和表达式2的值
- 值:如果关系成立,则返回True;反之,返回False
print(3 == 3) # True
print(3 != 3) # False
print(3 > 3) # False
print(3 < 3) # False
print(3 <= 3) # True
print(3 >= 3) # True
print(3.0 == 3) # True
print(True == False) # False
print("hello" == "hi") # False
print("hello" < "hi") # True 字符串的比较,是依次比较每个字母的ASCII码值
print("hello" < "hell") # False 字符串的比较,是依次比较每个字母的ASCII码值
print(ord('a')) # 打印a的ASCII码值
逻辑运算符
逻辑运算表达式
- and:并且,同时
- or:或者
- not:相反
print(True and False) # False
print(True and True) # True
print(True and True and True) # True
print(True and False and True) # False
print((1 == 1) and (2 < 3) and (3 > 2)) # True
print('hello' and 'hi') # 结果是hi。因为hello不是空串,其为True, 短路运算后,取决于后面的是什么内容
print('' and 'hi') # ''结果为空串。空串为False 短路运算
print(False and 'hi') # False
print(0 and 1) # 0
print(True or False) # True
print(True or False or False) # True
print(False or False or False) # False
print(2024 or 2025 or 0) # 2024
print(1 or 0) # 1
print(0 or '' or 888) # 888
print(not True) # False
print(not False) # True
print(not 1) # False
print(not 0) # True
print(not '') # True
print(not 'aa') # False
# 优先级,not优先级最高,其他依次
print(True and False or not False) # True
print(True or False or not False) # True
print(True and False and not False) # False
位运算符
"""
101
111
---
101 5
"""
print(5 & 7) # 5
"""
011
100
---
111 7
"""
print(3 | 4) # 7
"""
010
100
---
110 6
"""
print(2 ^ 4) # 6
"""
01 1前面0表示正数,1表示负数
10 补码
11 取反(符号位不变,其余0变1,1变0)
110 加一
---
110 6
"""
print(~ 1) # -2
"""
101
---
1010 6
10100 6
"""
print(5 << 1) # 10
print(5 << 2) # 20
成员运算符
print('12' in '123') # True
print('hi' in 'hello') # False
身份运算符
a = 1
b = 1
c = 3
print(a is b) # True
print(a is c) # False