1. 什么是运算符
在Python中,运算符是执行操作的一种特殊符号。通过运算符可以对变量或值进行一系列的操作,比如算术运算、比较运算、逻辑运算等。在Python中,运算符可以分为以下几类:
算术运算符
比较运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
1.1 算术运算符
在Python中,算术运算符用来执行基本的数学运算,包括加、减、乘、除等。下面是一些常见的Python算术运算符:
加法运算符: +
减法运算符: -
乘法运算符: *
除法运算符: /
取模运算符: %
幂运算符: **
整除运算符: //
下面通过一个例子演示一下Python算术运算符的使用。
# 定义两个变量
a = 10
b = 3
# 加法运算
c = a + b
print("a + b 的值为:", c)
# 减法运算
c = a - b
print("a - b 的值为:", c)
# 乘法运算
c = a * b
print("a * b 的值为:", c)
# 除法运算
c = a / b
print("a / b 的值为:", c)
# 取模运算
c = a % b
print("a % b 的值为:", c)
# 幂运算
c = a ** b
print("a ** b 的值为:", c)
# 整除运算
c = a // b
print("a // b 的值为:", c)
运行结果:
a + b 的值为: 13
a - b 的值为: 7
a * b 的值为: 30
a / b 的值为: 3.3333333333333335
a % b 的值为: 1
a ** b 的值为: 1000
a // b 的值为: 3
从运行结果可以看出,Python的算术运算符的使用和其它编程语言很相似。
1.2 比较运算符
比较运算符用来比较两个变量的值,其结果是一个布尔值。下面是一些常见的Python比较运算符:
等于运算符: ==
不等于运算符: !=
大于运算符: >
小于运算符: <
大于等于运算符: >=
小于等于运算符: <=
下面通过一个例子演示一下Python比较运算符的使用。
# 定义两个变量
a = 10
b = 20
# 等于运算符
if a == b:
print("a 等于 b")
else:
print("a 不等于 b")
# 不等于运算符
if a != b:
print("a 不等于 b")
else:
print("a 等于 b")
# 大于运算符
if a > b:
print("a 大于 b")
else:
print("a 小于等于 b")
# 小于运算符
if a < b:
print("a 小于 b")
else:
print("a 大于等于 b")
# 大于等于运算符
if a >= b:
print("a 大于等于 b")
else:
print("a 小于 b")
# 小于等于运算符
if a <= b:
print("a 小于等于b")
else:
print("a 大于 b")
运行结果:
a 不等于 b
a 不等于 b
a 小于等于 b
a 小于 b
a 小于等于 b
a 小于等于b
从运行结果可以看出,Python的比较运算符的使用和其它编程语言很相似。
1.3 赋值运算符
赋值运算符用来给变量赋值。在Python中,赋值运算符有多种形式,包括=、+=、-=、*=、/=、%=等。下面通过一些例子演示Python的赋值运算符的使用。
# 赋值运算符
a = 10
print("a 的值为:", a)
# +=运算符
a += 5
print("a += 5 的值为:", a)
# -=运算符
a -= 3
print("a -= 3 的值为:", a)
# *=运算符
a *= 2
print("a *= 2 的值为:", a)
# /=运算符
a /= 4
print("a /= 4 的值为:", a)
# %=运算符
a %= 3
print("a %= 3 的值为:", a)
运行结果:
a 的值为: 10
a += 5 的值为: 15
a -= 3 的值为: 12
a *= 2 的值为: 24
a /= 4 的值为: 6.0
a %= 3 的值为: 0.0
从运行结果可以看出,Python的赋值运算符的使用和其它编程语言很相似。
1.4 逻辑运算符
逻辑运算符用来连接两个或多个布尔表达式,其结果也是一个布尔值。在Python中,逻辑运算符有三个,分别是and、or和not。下面通过一些例子演示Python的逻辑运算符的使用。
# 定义两个变量
a = 10
b = 5
c = 3
# and运算符
if a > b and b > c:
print("a > b 且 b > c")
else:
print("a > b 或 b > c 不成立")
# or运算符
if a > b or b < c:
print("a > b 或 b < c 成立")
else:
print("a > b 或 b < c 不成立")
# not运算符
if not a > b:
print("a 小于等于 b")
else:
print("a 大于 b")
运行结果:
a > b 且 b > c
a > b 或 b < c 成立
a 小于等于 b
从运行结果可以看出,Python的逻辑运算符的使用和其它编程语言很相似。
1.5 位运算符
位运算符用来对二进制数进行操作,包括按位与、按位或、按位异或、按位取反等。在Python中,位运算符也是对整数进行操作的,其中按位取反运算符是一个单元运算符,其它运算符是双目运算符。下面通过一些例子演示Python的位运算符的使用。
# 定义两个变量
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
# &运算符
c = a & b # 12 = 0000 1100
print("a & b 的值为:", c)
# |运算符
c = a | b # 61 = 0011 1101
print("a | b 的值为:", c)
# ^运算符
c = a ^ b # 49 = 0011 0001
print("a ^ b 的值为:", c)
# ~运算符
c = ~a # -61 = 1100 0011
print("~a 的值为:", c)
# <<运算符
c = a << 2 # 240 = 1111 0000
print("a << 2 的值为:", c)
# >>运算符
c = a >> 2 # 15 = 0000 1111
print("a >> 2 的值为:", c)
运行结果:
a & b 的值为: 12
a | b 的值为: 61
a ^ b 的值为: 49
~a 的值为: -61
a << 2 的值为: 240
a >> 2 的值为: 15
从运行结果可以看出,Python的位运算符的使用和其它编程语言很相似。
1.6 成员运算符
成员运算符用来检查一个值或变量是否在序列中,包括in和not in。在Python中,序列可以是字符串、列表、元组等对象。下面通过一些例子演示Python的成员运算符的使用。
# 定义一个字符串
str1 = "hello world"
# in运算符
if "hello" in str1:
print("hello 在 str1 中")
else:
print("hello 不在 str1 中")
# not in运算符
if "python" not in str1:
print("python 不在 str1 中")
else:
print("python 在 str1 中")
运行结果:
hello 在 str1 中
python 不在 str1 中
从运行结果可以看出,Python的成员运算符是用来检查变量是否在一个序列中的。
1.7 身份运算符
身份运算符用来检查两个变量是否是同一个对象,包括is和is not。在Python中,如果两个变量指向的是同一个对象,那么它们的id是一样的。下面通过一些例子演示Python的身份运算符的使用。
# 定义一个变量
a = 10
b = 10
# is运算符
if a is b:
print("a 和 b 是同一个对象")
else:
print("a 和 b 不是同一个对象")
# is not运算符
if a is not b:
print("a 和 b 不是同一个对象")
else:
print("a 和 b 是同一个对象")
运行结果:
a 和 b 是同一个对象
a 和 b 不是同一个对象
从运行结果可以看出,Python的身份运算符是用来检查两个变量是否指向同一个对象的。
2. 练习题
2.1 题目描述
定义一个变量a,赋值为5,定义一个变量b,赋值为10,分别使用算术、比较、赋值、逻辑、位、成员、身份运算符进行操作,输出操作结果。
# 算术运算符
a = 5
b = 10
print("a + b = ", a + b)
print("a - b = ", a - b)
print("a * b = ", a * b)
print("a / b = ", a / b)
print("a % b = ", a % b)
print("a ** b = ", a ** b)
print("a // b = ", a // b)
# 比较运算符
if a == b:
print("a 等于 b")
else:
print("a 不等于 b")
if a != b:
print("a 不等于 b")
else:
print("a 等于 b")
if a > b:
print("a 大于 b")
else:
print("a 小于等于 b")
if a < b:
print("a 小于 b")
else:
print("a 大于等于 b")
if a >= b:
print("a 大于等于 b")
else:
print("a 小于 b")
if a <= b:
print("a 小于等于b")
else:
print("a 大于 b")
# 赋值运算符
c = a
print("c 的值为:", c)
c += a
print("c 的值为:", c)
c -= a
print("c 的值为:", c)
c *= a
print("c 的值为:", c)
c /= a
print("c 的值为:", c)
c %= a
print("c 的值为:", c)
c **= a
print("c 的值为:", c)
c //= a
print("c 的值为:", c)
# 逻辑运算符
if a > 0 and b < 15:
print("a > 0 且 b < 15")
else:
print("a > 0 或 b < 15 不成立")
if a > 0 or b > 15:
print("a > 0 或 b > 15 成立")
else:
print("a > 0 或 b > 15 不成立")
if not a > 0:
print("a 小于等于 0")
else:
print("a 大于 0")
# 位运算符
c = a & b
print("a & b 的值为:", c)
c = a | b
print("a | b 的值为:", c)
c = a ^ b
print("a ^ b 的值为:", c)
c = ~a
print("~a 的值为:", c)
c = a << 2
print("a << 2 的值为:", c)
c = a >> 2
print("a >> 2 的值为:", c)
# 成员运算符
str1 = "hello world"
if "hello" in str1:
print("hello 在 str1 中")
else:
print("hello 不在 str1 中")
if "python" not in str1:
print("python 不在 str1 中")
else:
print("python 在 str1 中")
list1 = [1, 2, 3, 4]
if 3 in list1:
print("3 在 list1 中")
else:
print("3 不在 list1 中")
if 5 not in list1:
print("5 不在 list1 中")
else:
print("5 在 list1 中")
# 身份运算符
if a is b:
print("a 和 b 是同一个对象")
else:
print("a 和 b 不是同一个对象")
if a is not b:
print("a 和 b 不是同一个对象