运算符

什么是运算符?

运算符是用于执行特定操作的特殊符号,如加法、减法、比较等。

算术运算符

用于执行数学运算。

a = 10
b = 3

print(a + b)    print(a - b)    print(a * b)    print(a / b)    print(a // b)   print(a % b)    print(a ** b)  

运算符说明

运算符描述示例结果
+加法10 + 313
-减法10 - 37
*乘法10 * 330
/除法10 / 33.333...
//整除10 // 33
%取余10 % 31
**幂运算10 ** 31000

负数运算

print(-10 // 3)     print(-10 % 3)     

字符串运算

s1 = "Hello"
s2 = "World"

print(s1 + " " + s2)  
print(s1 * 3)         

比较运算符

用于比较两个值,返回布尔值。

a = 10
b = 20

print(a == b)    print(a != b)    print(a > b)     print(a < b)     print(a >= b)    print(a <= b)   

运算符说明

运算符描述示例结果
==等于10 == 20False
!=不等于10 != 20True
>大于10 > 20False
<小于10 < 20True
>=大于等于10 >= 10True
<=小于等于10 <= 20True

字符串比较

print("apple" < "banana")  
print("Apple" < "apple")   

链式比较

x = 15

print(10 < x < 20)        
print(10 < x and x < 20)  

赋值运算符

用于给变量赋值。

基本赋值

x = 10
name = "张三"

复合赋值

a = 10

a += 5       
a -= 3       
a *= 2       
a /= 4       
a //= 2      
a %= 3       
a **= 2      

print(a)

运算符说明

运算符示例等价于
=x = 10x = 10
+=x += 5x = x + 5
-=x -= 3x = x - 3
*=x *= 2x = x * 2
/=x /= 4x = x / 4
//=x //= 2x = x // 2
%=x %= 3x = x % 3
**=x **= 2x = x ** 2

多重赋值

a, b, c = 1, 2, 3

print(a)  
print(b)  
print(c)  

x = y = z = 0

print(x, y, z)  

交换变量

a = 10
b = 20

a, b = b, a

print(a)  
print(b)  

逻辑运算符

用于组合布尔表达式。

a = True
b = False

print(a and b)   
print(a or b)    
print(not a)     

运算符说明

运算符描述示例结果
andTrue and FalseFalse
orTrue or FalseTrue
notnot TrueFalse

真值表

and 运算符:

ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

or 运算符:

ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

短路求值

def true_func():
    print("true_func called")
    return True

def false_func():
    print("false_func called")
    return False

print(false_func() and true_func())  
print(true_func() or false_func())   

非布尔值的逻辑运算

print(1 and 2)    
print(0 and 2)    
print(1 or 2)     
print(0 or 2)     

print(bool(0))    
print(bool(1))    
print(bool(""))   
print(bool("abc")) 

位运算符

用于对整数的二进制位进行操作。

a = 60    
b = 13    

print(a & b)     
print(a | b)     
print(a ^ b)     
print(~a)        
print(a << 2)    
print(a >> 2)    

运算符说明

运算符描述示例
&按位与两个位都为1,结果为1
|按位或两个位有一个为1,结果为1
^按位异或两个位不同,结果为1
~按位取反0变1,1变0
<<左移各位全部左移若干位
>>右移各位全部右移若干位

二进制表示

a = 60  
b = 13  

print(bin(a))  
print(bin(b))  

print(bin(a & b))  
print(bin(a | b))  

成员运算符

用于测试序列中是否包含某个成员。

list1 = [1, 2, 3, 4, 5]
str1 = "Hello World"

print(3 in list1)          
print(6 in list1)          
print("World" in str1)     
print("Python" not in str1) 

运算符说明

运算符描述示例
in在序列中3 in [1,2,3] → True
not in不在序列中6 in [1,2,3] → False

身份运算符

用于比较两个对象的内存地址。

a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a is c)      
print(a is b)      
print(a == b)      
print(a is not b)  

is vs ==

x = 256
y = 256
print(x is y)  

x = 257
y = 257
print(x is y)  

x = "hello"
y = "hello"
print(x is y)  

x = "hello world"
y = "hello world"
print(x is y)  

运算符说明

运算符描述
is判断两个对象是否是同一个对象
is not判断两个对象是否不是同一个对象

运算符优先级

从高到低的优先级:

优先级运算符描述
1**幂运算
2~ + -按位取反、正号、负号
3* / % //乘、除、取余、整除
4+ -加、减
5>> <<右移、左移
6&按位与
7^ |按位异或、按位或
8<= < > >=比较运算符
9== !=等于、不等于
10= %= /= //= -= += *= **=赋值运算符
11is is not身份运算符
12in not in成员运算符
13not or and逻辑运算符

使用括号明确优先级

result = 2 + 3 * 4        
result = (2 + 3) * 4      

print(result)

实践练习

练习 1:温度转换

celsius = 25
fahrenheit = celsius * 9 / 5 + 32

print(f"{celsius}°C = {fahrenheit}°F")

练习 2:判断奇偶

num = 17

is_even = num % 2 == 0

print(f"{num} 是偶数:{is_even}")

练习 3:计算BMI

height = 1.75
weight = 70

bmi = weight / (height ** 2)

print(f"身高:{height}米")
print(f"体重:{weight}公斤")
print(f"BMI:{bmi:.2f}")

练习 4:逻辑判断

age = 25
has_license = True

can_drive = age >= 18 and has_license

print(f"可以驾驶:{can_drive}")

小结

本章我们学习了:

  • 算术运算符:执行数学运算
  • 比较运算符:比较两个值
  • 赋值运算符:给变量赋值
  • 逻辑运算符:组合布尔表达式
  • 位运算符:操作二进制位
  • 成员运算符:测试序列成员
  • 身份运算符:比较对象身份
  • 运算符优先级

掌握各种运算符是编写复杂表达式的基础。在下一章中,我们将学习字符串的详细操作,了解如何处理文本数据。