在 Python 中,运算符是用于执行各种操作的符号或关键字;表达式是由操作符、变量、常量和函数调用等组成的,它们可以被计算求值并返回一个结果。

以下是一些常用的运算符和表达式:

算术运算符

Python 中的算术运算符用于执行基本的算术运算,包括加、减、乘、除、取模和幂运算。以下是一些常用的算术运算符:

  • +:加法运算
  • -:减法运算
  • *:乘法运算
  • /:除法运算
  • %:取模运算,返回两个数相除的余数
  • **:幂运算,返回一个数的指定次幂

例如:

1
2
3
4
5
x + y    # 加法
x - y    # 减法
x * y    # 乘法
x / y    # 除法
x % y    # 取模

在这个例子中,我们使用算术运算符执行基本的算术运算,例如将变量xy相加、相减、相乘、相除和取模。

比较运算符

Python 中的比较运算符用于比较两个值的大小关系,返回一个布尔值。以下是一些常用的比较运算符:

  • ==:等于运算符,如果两个值相等,则返回True,否则返回False
  • !=:不等于运算符,如果两个值不相等,则返回True,否则返回False
  • >:大于运算符,如果左边的值大于右边的值,则返回True,否则返回False
  • <:小于运算符,如果左边的值小于右边的值,则返回True,否则返回False
  • >=:大于等于运算符,如果左边的值大于等于右边的值,则返回True,否则返回False
  • <=:小于等于运算符,如果左边的值小于等于右边的值,则返回True,否则返回False

例如:

1
2
3
4
5
6
x == y    # 等于
x != y    # 不等于
x > y     # 大于
x < y     # 小于
x >= y    # 大于等于
x <= y    # 小于等于

在这个例子中,我们使用比较运算符比较变量xy的大小关系,例如判断x是否等于y、是否大于y等。

逻辑运算符

Python 中的逻辑运算符用于执行逻辑操作,包括与、或和非运算。以下是一些常用的逻辑运算符:

  • and:逻辑与运算符,如果两个操作数都为True,则返回True,否则返回False
  • or:逻辑或运算符,如果两个操作数中至少有一个为True,则返回True,否则返回False
  • not:逻辑非运算符,如果操作数为True,则返回False,否则返回True

例如:

1
2
3
x and y    # 与
x or y     # 或
not x      # 非

在这个例子中,我们使用逻辑运算符执行逻辑运算,例如判断变量xy是否都为True、判断变量xy是否至少一个为True等。

赋值运算符

Python 中的赋值运算符用于将一个值赋给一个变量。以下是一些常用的赋值运算符:

  • =:简单赋值运算符,将右边的值赋给左边的变量
  • +=:加等于运算符,将右边的值加到左边的变量上,并将结果赋给左边的变量
  • -=:减等于运算符,将右边的值从左边的变量上减去,并将结果赋给左边的变量
  • *=:乘等于运算符,将左边的变量乘以右边的值,并将结果赋给左边的变量
  • /=:除等于运算符,将左边的变量除以右边的值,并将结果赋给左边的变量
  • %=:取模等于运算符,将左边的变量取模右边的值,并将结果赋给左边的变量
  • **=:幂等于运算符,将左边的变量的值的指定次幂赋给左边的变量

例如:

1
2
3
4
5
6
x = 10    # 等于号
x += 5    # 加等于
x -= 5    # 减等于
x *= 2    # 乘等于
x /= 3    # 除等于
x %= 2    # 取模等于

在这个例子中,我们使用赋值运算符将一个值赋给变量x,以及使用加等于、减等于、乘等于、除等于和取模等于运算符对变量x进行更新。

位运算符

Python 中的位运算符用于对整数进行位运算,包括按位与、按位或、按位异或、按位取反和左右移位运算。以下是一些常用的位运算符:

  • &:按位与运算符,对两个操作数的每个位执行逻辑与操作,返回一个新的整数
  • |:按位或运算符,对两个操作数的每个位执行逻辑或操作,返回一个新的整数
  • ^:按位异或运算符,对两个操作数的每个位执行逻辑异或操作,返回一个新的整数
  • ~:按位取反运算符,对操作数的每个位执行逻辑取反操作,返回一个新的整数
  • <<:左移位运算符,将一个整数的所有位向左移动指定的位数,返回一个新的整数
  • >>:右移位运算符,将一个整数的所有位向右移动指定的位数,返回一个新的整数

例如:

1
2
3
4
5
6
x & y    # 按位与
x | y    # 按位或
x ^ y    # 按位异或
~x       # 按位取反
x << 2   # 左移2位
x >> 2   # 右移2位

在这个例子中,我们使用位运算符对二进制数进行位操作,例如将变量xy进行按位与、按位或、按位异或,以及对变量x进行按位取反、左移和右移。

三元运算符

Python 中的三元运算符可以用于在一行代码中实现简单的条件语句。它的语法如下:

1
value_if_true if condition else value_if_false

其中condition是一个布尔表达式,如果它的值为True,则返回value_if_true,否则返回value_if_false。例如:

1
2
3
4
x = 5
y = 10
max_value = x if x > y else y
print(max_value)  # 输出:10

在这个例子中,我们使用三元运算符来比较xy的值,并将较大的值赋给变量max_value

成员运算符

Python 中的成员运算符用于检查一个值是否是另一个值的成员,包括innot in运算符。以下是一个例子:

1
2
3
my_list = [1, 2, 3, 4, 5]
if 3 in my_list:
    print("3 is in my_list")

在这个例子中,我们使用in运算符来检查3是否是my_list中的成员。如果是,则打印出3 is in my_list

身份运算符

Python 中的身份运算符用于比较两个对象的内存地址,包括isis not运算符。以下是一个例子:

1
2
3
4
5
6
x = [1, 2, 3]
y = [1, 2, 3]
if x is y:
    print("x and y have the same identity")
else:
    print("x and y have different identities")

在这个例子中,我们使用is运算符来比较xy的内存地址。由于xy是两个不同的列表对象,所以它们的内存地址不同,程序会打印出x and y have different identities

切片运算符

Python 中的切片运算符用于从序列中获取一个子序列,包括从开始位置到结束位置的切片和步长切片。以下是一个例子:

1
2
3
my_list = [1, 2, 3, 4, 5]
print(my_list[1:4])  # 输出:[2, 3, 4]
print(my_list[::2])  # 输出:[1, 3, 5]

在这个例子中,我们使用切片运算符从列表my_list中获取一个子序列。第一个切片my_list[1:4]返回从下标1到下标3的元素,第二个切片my_list[::2]返回每隔一个元素的子序列。

格式化运算符

Python 中的格式化运算符用于将一个值插入到一个字符串中。它的语法如下:

1
"format string" % values

其中"format string"是一个字符串,包含格式化代码,values是一个元组,包含要插入的值。例如:

1
2
3
name = "Alice"
age = 25
print("My name is %s, and I am %d years old." % (name, age))

在这个例子中,我们使用格式化运算符将变量nameage插入到字符串中,生成一条包含变量值的消息。

拼接运算符

Python 中的拼接运算符用于将两个字符串或序列连接起来,包括+运算符和*运算符。以下是一个例子:

1
2
3
4
5
6
str1 = "Hello"
str2 = "world"
print(str1 + " " + str2)  # 输出:Hello world

my_list = [1, 2, 3]
print(my_list * 3)  # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]

在这个例子中,我们使用拼接运算符将两个字符串连接起来,以及将一个列表复制多次生成一个新的列表。

解包运算符

Python 中的解包运算符包括两种:***

*解包运算符

*解包运算符用于将可迭代对象(如列表、元组、集合等)解包成单独的元素。例如:

1
2
my_list = [1, 2, 3, 4, 5]
print(*my_list)   # 输出: 1 2 3 4 5

在这个例子中,我们使用*解包运算符将my_list列表解包成一个个单独的元素,然后通过print函数输出。

**解包运算符

**解包运算符用于将字典解包成关键字参数。例如:

1
2
my_dict = {"x": 1, "y": 2, "z": 3}
print(**my_dict)   # 输出: x=1 y=2 z=3

在这个例子中,我们使用**解包运算符将my_dict字典解包成关键字参数,并通过print函数输出。

除了上面的用法,***解包运算符还可以用于函数定义和调用中。例如:

1
2
3
4
5
6
7
8
def my_func(a, b, c):
    print(a, b, c)

my_list = [1, 2, 3]
my_func(*my_list)   # 输出: 1 2 3

my_dict = {"a": 1, "b": 2, "c": 3}
my_func(**my_dict)   # 输出: 1 2 3

在这个例子中,我们定义了一个函数my_func,然后使用***解包运算符将列表和字典中的值作为函数的参数传递进去。

@运算符

@运算符用于执行矩阵乘法。例如:

1
2
3
4
5
6
import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = a @ b   # 矩阵乘法
print(c)    # 输出: [[19 22] [43 50]]

在这个例子中,我们使用@运算符对两个矩阵进行乘法运算,并将结果保存在变量c中。

lambda 表达式

Python 中的 lambda 表达式可以用于创建匿名函数。它的语法如下:

1
lambda arguments : expression

其中arguments是函数的参数列表,expression是一个表达式,表示函数的返回值。例如:

1
2
f = lambda x, y: x + y
print(f(2, 3))  # 输出:5

在这个例子中,我们使用 lambda 表达式创建了一个函数f,它接受两个参数xy,并返回它们的和。