Python学习3:运算符和表达式
在 Python 中,运算符是用于执行各种操作的符号或关键字;表达式是由操作符、变量、常量和函数调用等组成的,它们可以被计算求值并返回一个结果。
以下是一些常用的运算符和表达式:
算术运算符
Python 中的算术运算符用于执行基本的算术运算,包括加、减、乘、除、取模和幂运算。以下是一些常用的算术运算符:
+
:加法运算-
:减法运算*
:乘法运算/
:除法运算%
:取模运算,返回两个数相除的余数**
:幂运算,返回一个数的指定次幂
例如:
x + y # 加法
x - y # 减法
x * y # 乘法
x / y # 除法
x % y # 取模
在这个例子中,我们使用算术运算符执行基本的算术运算,例如将变量x
和y
相加、相减、相乘、相除和取模。
比较运算符
Python 中的比较运算符用于比较两个值的大小关系,返回一个布尔值。以下是一些常用的比较运算符:
==
:等于运算符,如果两个值相等,则返回True
,否则返回False
!=
:不等于运算符,如果两个值不相等,则返回True
,否则返回False
>
:大于运算符,如果左边的值大于右边的值,则返回True
,否则返回False
<
:小于运算符,如果左边的值小于右边的值,则返回True
,否则返回False
>=
:大于等于运算符,如果左边的值大于等于右边的值,则返回True
,否则返回False
<=
:小于等于运算符,如果左边的值小于等于右边的值,则返回True
,否则返回False
例如:
x == y # 等于
x != y # 不等于
x > y # 大于
x < y # 小于
x >= y # 大于等于
x <= y # 小于等于
在这个例子中,我们使用比较运算符比较变量x
和y
的大小关系,例如判断x
是否等于y
、是否大于y
等。
逻辑运算符
Python 中的逻辑运算符用于执行逻辑操作,包括与、或和非运算。以下是一些常用的逻辑运算符:
and
:逻辑与运算符,如果两个操作数都为True
,则返回True
,否则返回False
or
:逻辑或运算符,如果两个操作数中至少有一个为True
,则返回True
,否则返回False
not
:逻辑非运算符,如果操作数为True
,则返回False
,否则返回True
例如:
x and y # 与
x or y # 或
not x # 非
在这个例子中,我们使用逻辑运算符执行逻辑运算,例如判断变量x
和y
是否都为True
、判断变量x
和y
是否至少一个为True
等。
赋值运算符
Python 中的赋值运算符用于将一个值赋给一个变量。以下是一些常用的赋值运算符:
=
:简单赋值运算符,将右边的值赋给左边的变量+=
:加等于运算符,将右边的值加到左边的变量上,并将结果赋给左边的变量-=
:减等于运算符,将右边的值从左边的变量上减去,并将结果赋给左边的变量*=
:乘等于运算符,将左边的变量乘以右边的值,并将结果赋给左边的变量/=
:除等于运算符,将左边的变量除以右边的值,并将结果赋给左边的变量%=
:取模等于运算符,将左边的变量取模右边的值,并将结果赋给左边的变量**=
:幂等于运算符,将左边的变量的值的指定次幂赋给左边的变量
例如:
x = 10 # 等于号
x += 5 # 加等于
x -= 5 # 减等于
x *= 2 # 乘等于
x /= 3 # 除等于
x %= 2 # 取模等于
在这个例子中,我们使用赋值运算符将一个值赋给变量x
,以及使用加等于、减等于、乘等于、除等于和取模等于运算符对变量x
进行更新。
位运算符
Python 中的位运算符用于对整数进行位运算,包括按位与、按位或、按位异或、按位取反和左右移位运算。以下是一些常用的位运算符:
&
:按位与运算符,对两个操作数的每个位执行逻辑与操作,返回一个新的整数|
:按位或运算符,对两个操作数的每个位执行逻辑或操作,返回一个新的整数^
:按位异或运算符,对两个操作数的每个位执行逻辑异或操作,返回一个新的整数~
:按位取反运算符,对操作数的每个位执行逻辑取反操作,返回一个新的整数<<
:左移位运算符,将一个整数的所有位向左移动指定的位数,返回一个新的整数>>
:右移位运算符,将一个整数的所有位向右移动指定的位数,返回一个新的整数
例如:
x & y # 按位与
x | y # 按位或
x ^ y # 按位异或
~x # 按位取反
x << 2 # 左移2位
x >> 2 # 右移2位
在这个例子中,我们使用位运算符对二进制数进行位操作,例如将变量x
和y
进行按位与、按位或、按位异或,以及对变量x
进行按位取反、左移和右移。
三元运算符
Python 中的三元运算符可以用于在一行代码中实现简单的条件语句。它的语法如下:
value_if_true if condition else value_if_false
其中condition
是一个布尔表达式,如果它的值为True
,则返回value_if_true
,否则返回value_if_false
。例如:
x = 5
y = 10
max_value = x if x > y else y
print(max_value) # 输出:10
在这个例子中,我们使用三元运算符来比较x
和y
的值,并将较大的值赋给变量max_value
。
成员运算符
Python 中的成员运算符用于检查一个值是否是另一个值的成员,包括in
和not in
运算符。以下是一个例子:
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 中的身份运算符用于比较两个对象的内存地址,包括is
和is not
运算符。以下是一个例子:
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
运算符来比较x
和y
的内存地址。由于x
和y
是两个不同的列表对象,所以它们的内存地址不同,程序会打印出x and y have different identities
。
切片运算符
Python 中的切片运算符用于从序列中获取一个子序列,包括从开始位置到结束位置的切片和步长切片。以下是一个例子:
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 中的格式化运算符用于将一个值插入到一个字符串中。它的语法如下:
"format string" % values
其中"format string"
是一个字符串,包含格式化代码,values
是一个元组,包含要插入的值。例如:
name = "Alice"
age = 25
print("My name is %s, and I am %d years old." % (name, age))
在这个例子中,我们使用格式化运算符将变量name
和age
插入到字符串中,生成一条包含变量值的消息。
拼接运算符
Python 中的拼接运算符用于将两个字符串或序列连接起来,包括+
运算符和*
运算符。以下是一个例子:
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 中的解包运算符包括两种:*
和**
。
*
解包运算符
*
解包运算符用于将可迭代对象(如列表、元组、集合等)解包成单独的元素。例如:
my_list = [1, 2, 3, 4, 5]
print(*my_list) # 输出: 1 2 3 4 5
在这个例子中,我们使用*
解包运算符将my_list
列表解包成一个个单独的元素,然后通过print
函数输出。
**
解包运算符
**
解包运算符用于将字典解包成关键字参数。例如:
my_dict = {"x": 1, "y": 2, "z": 3}
print(**my_dict) # 输出: x=1 y=2 z=3
在这个例子中,我们使用**
解包运算符将my_dict
字典解包成关键字参数,并通过print
函数输出。
除了上面的用法,*
和**
解包运算符还可以用于函数定义和调用中。例如:
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
,然后使用*
和**
解包运算符将列表和字典中的值作为函数的参数传递进去。
@运算符
@
运算符用于执行矩阵乘法。例如:
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 表达式可以用于创建匿名函数。它的语法如下:
lambda arguments : expression
其中arguments
是函数的参数列表,expression
是一个表达式,表示函数的返回值。例如:
f = lambda x, y: x + y
print(f(2, 3)) # 输出:5
在这个例子中,我们使用 lambda 表达式创建了一个函数f
,它接受两个参数x
和y
,并返回它们的和。