Python - 运算符:掌握基础知识的友好指南

你好,有抱负的Python程序员!我很激动能在这个激动人心的Python运算符世界中成为你的向导。作为一个教编程多年的老师,我可以向你保证,理解运算符就像学习工具箱中的基本工具一样——一旦你掌握了它们,你会惊讶于你能构建的东西!

Python - Operators

Python运算符是什么?

在我们深入探讨之前,让我们从一个简单的类比开始。将运算符想象成Python语言中的动词。正如动词使我们在英语中能够表达动作一样,运算符使我们能够在Python中执行操作。它们是操纵我们的数据并帮助我们创建有意义程序的勤劳的工作马。

Python中的运算符类型

Python带有一组丰富的运算符,我们可以将它们分类到几个类别中。让我们通过一些例子来探索每种类型,这些例子会让你说:“啊哈!我现在明白了!”

1. 算术运算符

这些可能是你最熟悉的——它们就像你在学校学过的基本数学运算,但现在它们是你的编码盟友!

# 加法
print(5 + 3)  # 输出:8

# 减法
print(10 - 4)  # 输出:6

# 乘法
print(3 * 4)  # 输出:12

# 除法
print(20 / 5)  # 输出:4.0

# 整除(向下取整到最近的整数)
print(17 // 3)  # 输出:5

# 取模(除法的余数)
print(17 % 3)  # 输出:2

# 幂运算
print(2 ** 3)  # 输出:8

每个运算符执行一个特定的数学运算。取模运算符(%)在需要检查一个数字是否为偶数或奇数时特别有用——这是我编码课中经常使用的一个技巧!

2. 比较运算符

这些运算符就像编程比赛中的评委——它们比较值并返回TrueFalse

# 等于
print(5 == 5)  # 输出:True

# 不等于
print(5 != 3)  # 输出:True

# 大于
print(7 > 3)   # 输出:True

# 小于
print(2 < 8)   # 输出:True

# 大于或等于
print(5 >= 5)  # 输出:True

# 小于或等于
print(3 <= 1)  # 输出:False

我喜欢将这些视为Python中的“提问者”。它们不断地问:“这是真的吗?”并给我们一个是或否的答案。

3. 逻辑运算符

逻辑运算符是Python中的决策者。它们帮助我们结合多个条件并做出复杂的决策。

# and 运算符
print(True and True)   # 输出:True
print(True and False)  # 输出:False

# or 运算符
print(True or False)   # 输出:True
print(False or False)  # 输出:False

# not 运算符
print(not True)        # 输出:False
print(not False)       # 输出:True

我经常告诉我的学生将and视为一个严格的家长(两个条件都必须为真),or视为一个宽松的家长(至少一个条件必须为真),而not视为一个叛逆的青少年(总是反着来!)。

4. 赋值运算符

这些运算符就像Python中的搬运工——它们为变量赋值。

# 简单赋值
x = 5
print(x)  # 输出:5

# 加并赋值
x += 3    # 等同于 x = x + 3
print(x)  # 输出:8

# 减并赋值
x -= 2    # 等同于 x = x - 2
print(x)  # 输出:6

# 乘并赋值
x *= 2    # 等同于 x = x * 2
print(x)  # 输出:12

# 除并赋值
x /= 3    # 等同于 x = x / 3
print(x)  # 输出:4.0

这些运算符是真正的节省时间的好方法。我们不必写x = x + 3,而可以直接写x += 3。这就像Python在说:“我懂你,兄弟!”

5. 身份运算符

身份运算符用于比较两个对象的内存位置。

# is 运算符
x = [1, 2, 3]
y = [1, 2, 3]
z = x

print(x is z)  # 输出:True
print(x is y)  # 输出:False
print(x == y)  # 输出:True

# is not 运算符
print(x is not y)  # 输出:True

is运算符检查两个变量是否引用内存中的同一个对象。这就像在问:“这两样东西实际上是同一个东西吗?”这可能很棘手,所以我总是提醒我的学生使用==进行值比较,使用is进行身份比较。

6. 成员运算符

这些运算符就像俱乐部门口的保镖——它们检查一个值是否是序列的成员。

# in 运算符
fruits = ['apple', 'banana', 'cherry']
print('banana' in fruits)  # 输出:True

# not in 运算符
print('mango' not in fruits)  # 输出:True

我非常喜欢在教列表时使用这些运算符。它们使得检查一个项目是否存在变得非常容易!

Python运算符优先级

现在我们已经了解了所有的运算符,理解Python如何决定首先评估哪些运算符是很重要的。这称为运算符优先级,它就像是Python派对上的VIP名单——有些运算符可以先走!

以下是运算符优先级表,从最高到最低:

运算符 描述
() 括号
** 幂运算
+x, -x, ~x 一元加,一元减,按位非
*, /, //, % 乘法,除法,整除,取模
+, - 加法,减法
<<, >> 按位左移,按位右移
& 按位与
^ 按位异或
| 按位或
==, !=, >, >=, <, <=, is, is not, in, not in 比较,身份,成员
not 逻辑非
and 逻辑与
or 逻辑或

请记住,您始终可以使用括号来明确指定操作的顺序。这就像给你想要首先评估的表达式部分一个VIP通行证!

# 不使用括号
print(2 + 3 * 4)  # 输出:14

# 使用括号
print((2 + 3) * 4)  # 输出:20

在第一个例子中,乘法具有更高的优先级,所以3 * 4首先被评估。在第二个例子中,括号覆盖了默认的优先级,所以加法首先发生。

就这样,各位!你已经完成了Python运算符的速成课程。请记住,熟能生巧,所以不要害怕在您自己的代码中实验这些运算符。在你意识到之前,你将能够像大厨一样将它们结合在一起——创造出复杂且美味的Python程序!

快乐编码,愿运算符与你同在!

Credits: Image by storyset