Python3 运算符

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 不是同一个对象