Python(四) 基础语法:运算符和表达式
一、为什么要学习运算符和表达式
写程序时,经常需要让计算机帮我们“算东西”“做判断”“组合数据”。
例如:
price = 20
count = 3
total = price * count
print(total)
这里的 * 就是运算符,表示乘法。
再比如:
age = 18
if age >= 18:
print("已成年")
这里的 >= 也是运算符,表示“大于等于”。
在 Python 中,运算符和表达式几乎无处不在。学习变量、输入输出、条件判断、循环、函数时,都会用到它们。
简单来说:
- 运算符:用来进行计算、比较、判断或赋值的符号或关键字。
- 表达式:由变量、常量、运算符、函数调用等组成,并且能够计算出一个结果的代码。
掌握运算符和表达式,学生才能真正写出“会计算、会判断、会处理数据”的程序。
二、运算符的定义
运算符是 Python 中具有特殊含义的符号或关键字,用来对数据进行操作。
例如:
10 + 20
这里的 + 是运算符,表示加法。
score >= 60
这里的 >= 是运算符,表示大于等于。
name == "小明"
这里的 == 是运算符,表示判断两个值是否相等。
三、表达式的定义
表达式是能够计算出一个结果的代码。
例如:
10 + 20
这是一个表达式,结果是:
30
再比如:
age >= 18
这也是一个表达式,结果可能是:
True
或者:
False
再看一个例子:
price * count
如果:
price = 20
count = 3
那么表达式 price * count 的结果就是:
60
教学时可以告诉学生:
表达式就像一道算式,程序会把它算出一个结果。
四、运算符和表达式的关系
运算符通常是表达式的一部分。
例如:
a + b
这里:
a和b是参与运算的数据。+是运算符。a + b整体是表达式。
再如:
score >= 60
这里:
score和60是参与比较的数据。>=是比较运算符。score >= 60整体是表达式,结果是布尔值True或False。
五、Python 中常见运算符分类
Python 中常见的运算符可以分为以下几类:
| 运算符类型 | 作用 |
|---|---|
| 算术运算符 | 做数学计算 |
| 赋值运算符 | 给变量赋值或更新变量 |
| 比较运算符 | 比较两个值的关系 |
| 逻辑运算符 | 组合多个条件 |
| 成员运算符 | 判断某个值是否在序列中 |
| 身份运算符 | 判断两个对象是否是同一个对象 |
| 位运算符 | 对整数的二进制位进行运算 |
初学阶段最重要的是:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 成员运算符
位运算符和身份运算符可以作为了解内容,不需要一开始讲得太深。
六、算术运算符
算术运算符用于数学计算。
常见算术运算符:
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 3 + 2 |
5 |
- |
减法 | 3 - 2 |
1 |
* |
乘法 | 3 * 2 |
6 |
/ |
除法 | 3 / 2 |
1.5 |
// |
整除 | 3 // 2 |
1 |
% |
取余 | 3 % 2 |
1 |
** |
幂运算 | 3 ** 2 |
9 |
1. 加法运算符 +
+ 可以用于数字加法。
a = 10
b = 20
print(a + b)
输出:
30
+ 也可以用于字符串拼接。
first_name = "张"
last_name = "三"
print(first_name + last_name)
输出:
张三
注意:
数字加法和字符串拼接不是一回事。
print(10 + 20)
print("10" + "20")
输出:
30
1020
第一个是数学加法,第二个是字符串拼接。
2. 减法运算符 -
- 用于数字减法。
money = 100
cost = 35
left = money - cost
print(left)
输出:
65
也可以表示负数:
temperature = -5
print(temperature)
输出:
-5
3. 乘法运算符 *
* 用于数字乘法。
price = 12
count = 5
total = price * count
print(total)
输出:
60
* 还可以让字符串重复多次。
print("Python" * 3)
输出:
PythonPythonPython
这个特性可以用于简单分隔线:
print("-" * 20)
输出:
--------------------
4. 除法运算符 /
/ 表示普通除法。
print(10 / 2)
print(10 / 3)
输出:
5.0
3.3333333333333335
注意:
在 Python 中,使用 / 做除法时,结果通常是浮点数。
即使能整除:
print(10 / 2)
输出也是:
5.0
而不是整数 5。
5. 整除运算符 //
// 表示整除,也叫地板除。
它会得到除法结果的整数部分。
print(10 // 3)
print(9 // 2)
输出:
3
4
可以这样理解:
10 除以 3 等于 3 余 1,所以 10 // 3 的结果是 3。
9 除以 2 等于 4 余 1,所以 9 // 2 的结果是 4。
注意:
// 不是四舍五入,而是向下取整。
print(5 // 2)
print(5.0 // 2)
输出:
2
2.0
6. 取余运算符 %
% 表示取余数。
print(10 % 3)
print(9 % 2)
输出:
1
1
取余在编程中很常用。
例如,判断一个数是奇数还是偶数:
number = int(input("请输入一个整数:"))
if number % 2 == 0:
print("偶数")
else:
print("奇数")
这里:
number % 2
表示 number 除以 2 的余数。
如果余数是 0,说明它能被 2 整除,是偶数。
7. 幂运算符 **
** 表示乘方。
print(2 ** 3)
print(3 ** 2)
输出:
8
9
解释:
2 ** 3表示 2 的 3 次方,也就是2 * 2 * 2。3 ** 2表示 3 的 2 次方,也就是3 * 3。
计算正方形面积:
side = 5
area = side ** 2
print(area)
输出:
25
七、算术表达式
由数字、变量和算术运算符组成的表达式,叫算术表达式。
例如:
10 + 20
price * count
(a + b) / 2
例子:计算平均分。
chinese = 90
math = 95
english = 88
average = (chinese + math + english) / 3
print(f"平均分是{average:.2f}")
输出:
平均分是91.00
这里:
(chinese + math + english) / 3
就是一个算术表达式。
八、赋值运算符
赋值运算符用于给变量赋值,或者更新变量的值。
最常见的赋值运算符是:
=
例子:
name = "小明"
age = 18
这里不是数学中的“相等”,而是把右边的值保存到左边的变量中。
可以读作:
把 "小明" 赋值给变量 name。
把 18 赋值给变量 age。
1. 普通赋值
x = 10
print(x)
输出:
10
变量的值可以被重新赋值。
x = 10
x = 20
print(x)
输出:
20
因为第二次赋值会覆盖第一次的值。
2. 链式赋值
可以同时给多个变量赋同一个值。
a = b = c = 0
print(a)
print(b)
print(c)
输出:
0
0
0
这表示 a、b、c 的值都是 0。
3. 多变量赋值
Python 支持一次给多个变量赋值。
name, age, city = "小明", 18, "北京"
print(name)
print(age)
print(city)
输出:
小明
18
北京
注意:
左边变量个数和右边数据个数要一致。
错误示例:
a, b = 10, 20, 30
这会报错,因为左边有 2 个变量,右边有 3 个值。
4. 复合赋值运算符
复合赋值运算符用于“在原来变量的基础上进行运算,再赋值回去”。
常见复合赋值运算符:
| 运算符 | 含义 | 等价写法 |
|---|---|---|
+= |
加后赋值 | x = x + n |
-= |
减后赋值 | x = x - n |
*= |
乘后赋值 | x = x * n |
/= |
除后赋值 | x = x / n |
//= |
整除后赋值 | x = x // n |
%= |
取余后赋值 | x = x % n |
**= |
幂运算后赋值 | x = x ** n |
例子:
count = 0
count += 1
print(count)
输出:
1
这里:
count += 1
等价于:
count = count + 1
5. 复合赋值常见场景
统计次数:
count = 0
count += 1
count += 1
count += 1
print(count)
输出:
3
累加总和:
total = 0
total += 10
total += 20
total += 30
print(total)
输出:
60
循环中经常会用到复合赋值:
total = 0
for number in range(1, 6):
total += number
print(total)
输出:
15
九、比较运算符
比较运算符用于比较两个值之间的关系。
比较表达式的结果一定是布尔值:
True
或:
False
常见比较运算符:
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
== |
等于 | 3 == 3 |
True |
!= |
不等于 | 3 != 2 |
True |
> |
大于 | 5 > 3 |
True |
< |
小于 | 5 < 3 |
False |
>= |
大于等于 | 5 >= 5 |
True |
<= |
小于等于 | 4 <= 5 |
True |
1. 等于 ==
== 用来判断两个值是否相等。
print(10 == 10)
print(10 == 20)
输出:
True
False
注意:
== 和 = 不一样。
=是赋值。==是判断是否相等。
age = 18 # 把 18 赋值给 age
age == 18 # 判断 age 是否等于 18
这是初学者非常容易混淆的地方。
2. 不等于 !=
!= 用来判断两个值是否不相等。
password = "123456"
print(password != "admin")
输出:
True
3. 大于、小于、大于等于、小于等于
score = 85
print(score > 90)
print(score >= 60)
print(score < 60)
print(score <= 100)
输出:
False
True
False
True
这些比较运算符经常用在 if 条件判断中。
score = int(input("请输入成绩:"))
if score >= 60:
print("及格")
else:
print("不及格")
4. 链式比较
Python 支持链式比较。
例如,判断成绩是否在 0 到 100 之间:
score = 85
if 0 <= score <= 100:
print("成绩有效")
else:
print("成绩无效")
这比下面写法更简洁:
if score >= 0 and score <= 100:
print("成绩有效")
不过初学时可以先讲普通写法,再介绍链式比较。
十、比较表达式
比较表达式是使用比较运算符组成的表达式。
例如:
age >= 18
score == 100
password != "123456"
比较表达式的结果是 True 或 False。
例子:
age = 20
result = age >= 18
print(result)
输出:
True
这里:
age >= 18
先被计算成 True,然后赋值给变量 result。
十一、逻辑运算符
逻辑运算符用于组合多个条件。
Python 中常见逻辑运算符有三个:
| 运算符 | 含义 | 说明 |
|---|---|---|
and |
与 | 多个条件都为真,结果才为真 |
or |
或 | 多个条件只要有一个为真,结果就为真 |
not |
非 | 取反,真变假,假变真 |
1. and 运算符
and 表示“并且”。
只有左右两个条件都成立,结果才是 True。
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("可以入场")
else:
print("不能入场")
这里必须同时满足:
- 年龄大于等于 18。
- 有票。
才可以入场。
2. or 运算符
or 表示“或者”。
只要左右两个条件有一个成立,结果就是 True。
is_member = False
has_coupon = True
if is_member or has_coupon:
print("可以享受优惠")
else:
print("不能享受优惠")
这里只要是会员,或者有优惠券,就可以享受优惠。
3. not 运算符
not 表示“不是”或“取反”。
is_login = False
if not is_login:
print("请先登录")
is_login 是 False,not is_login 就是 True。
所以会输出:
请先登录
4. 逻辑运算真值表
and 的规则:
| 表达式 | 结果 |
|---|---|
True and True |
True |
True and False |
False |
False and True |
False |
False and False |
False |
or 的规则:
| 表达式 | 结果 |
|---|---|
True or True |
True |
True or False |
True |
False or True |
True |
False or False |
False |
not 的规则:
| 表达式 | 结果 |
|---|---|
not True |
False |
not False |
True |
5. 逻辑表达式
由比较表达式和逻辑运算符组成的表达式,叫逻辑表达式。
例如:
age >= 18 and has_ticket
score >= 60 or is_makeup_exam
not is_login
逻辑表达式经常作为 if 的条件。
score = 85
attendance = 90
if score >= 60 and attendance >= 80:
print("可以通过课程")
else:
print("不能通过课程")
十二、成员运算符
成员运算符用于判断一个值是否在某个序列中。
常见成员运算符:
| 运算符 | 含义 |
|---|---|
in |
在里面 |
not in |
不在里面 |
这里的序列可以是字符串、列表、元组等。
1. 在字符串中使用 in
text = "hello python"
print("python" in text)
print("java" in text)
输出:
True
False
可以用于简单关键词判断:
message = "我正在学习 Python"
if "Python" in message:
print("这句话和 Python 有关")
2. 在列表中使用 in
students = ["小明", "小红", "小刚"]
print("小明" in students)
print("小李" in students)
输出:
True
False
用于判断用户输入是否在允许范围内:
level = input("请输入等级 A/B/C:")
if level in ["A", "B", "C"]:
print("等级有效")
else:
print("等级无效")
3. not in
not in 表示“不在里面”。
forbidden_names = ["admin", "root"]
username = input("请输入用户名:")
if username not in forbidden_names:
print("用户名可以使用")
else:
print("用户名不能使用")
十三、身份运算符
身份运算符用于判断两个变量是否引用同一个对象。
常见身份运算符:
| 运算符 | 含义 |
|---|---|
is |
是同一个对象 |
is not |
不是同一个对象 |
初学时可以简单理解:
==判断值是否相等。is判断是否是同一个对象。
例子:
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b)
print(a is b)
print(a is c)
输出通常是:
True
False
True
解释:
a == b是True,因为两个列表的内容相同。a is b是False,因为它们是两个不同的列表对象。a is c是True,因为c引用的就是a指向的那个列表。
初学阶段需要重点记住:
判断两个值是否相等,一般使用 ==,不要随便用 is。
常见用法是判断是否为 None:
result = None
if result is None:
print("没有结果")
十四、位运算符
位运算符用于对整数的二进制位进行运算。
这部分在 Python 基础入门阶段不是最常用内容,可以作为了解。
常见位运算符:
| 运算符 | 名称 | |
|---|---|---|
& |
按位与 | |
| ` | ` | 按位或 |
^ |
按位异或 | |
~ |
按位取反 | |
<< |
左移 | |
>> |
右移 |
例子:
print(5 & 3)
print(5 | 3)
可以把整数先想象成二进制:
5 的二进制是 101
3 的二进制是 011
按位与 &:
101
011
---
001
结果是二进制 001,也就是十进制 1。
对于初学者,不需要一开始掌握复杂位运算,只要知道它是“对二进制位进行操作”的运算符即可。
十五、运算符优先级
当一个表达式中有多个运算符时,Python 会按照一定顺序计算。
这就是运算符优先级。
比如:
result = 2 + 3 * 4
print(result)
输出:
14
因为乘法 * 的优先级高于加法 +,所以先算:
3 * 4 = 12
再算:
2 + 12 = 14
如果想先算加法,可以使用小括号:
result = (2 + 3) * 4
print(result)
输出:
20
十六、常见运算符优先级顺序
下面列出初学阶段常见的优先级,从高到低:
| 优先级 | 运算符 | 说明 |
|---|---|---|
| 高 | () |
小括号 |
** |
幂运算 | |
+x、-x |
正号、负号 | |
*、/、//、% |
乘、除、整除、取余 | |
+、- |
加、减 | |
>、<、>=、<=、==、!= |
比较 | |
not |
逻辑非 | |
and |
逻辑与 | |
| 低 | or |
逻辑或 |
不建议让初学者死记整张优先级表。
更实用的建议是:
如果不确定先算谁,就加小括号。
例子:
if (score >= 60) and (attendance >= 80):
print("通过")
虽然这里不加括号也能运行,但加括号后更容易读懂。
十七、表达式的求值过程
表达式求值,就是 Python 计算表达式结果的过程。
例子:
result = (10 + 5) * 2 > 20
可以分步骤理解:
- 先算小括号:
10 + 5,结果是15。 - 再算乘法:
15 * 2,结果是30。 - 再进行比较:
30 > 20,结果是True。 - 最后把
True赋值给变量result。
所以:
print(result)
输出:
True
教学时可以让学生把复杂表达式一步一步拆开,这样更容易理解。
十八、短路运算
逻辑运算符 and 和 or 有一个重要特点:短路运算。
短路运算指的是:
当 Python 已经能确定整个表达式结果时,就不会继续计算后面的部分。
1. and 的短路
and 要求左右都为真,结果才为真。
如果左边已经是 False,整个表达式一定是 False,右边就不需要再计算。
age = 15
if age >= 18 and input("请输入验证码:") == "1234":
print("验证通过")
else:
print("验证失败")
这里 age >= 18 是 False,所以 Python 不会再执行右边的 input()。
因为无论右边是真是假,整个 and 表达式都已经不可能为 True。
2. or 的短路
or 只要求有一个条件为真,结果就为真。
如果左边已经是 True,整个表达式一定是 True,右边就不需要再计算。
is_admin = True
if is_admin or input("请输入邀请码:") == "8888":
print("可以进入")
else:
print("不能进入")
这里 is_admin 是 True,所以 Python 不会再执行右边的 input()。
短路运算在实际开发中很常见,但初学阶段只需要知道:
and 和 or 不一定会计算所有条件。
十九、常见表达式类型
1. 字面量表达式
一个单独的值也可以是表达式。
10
"Python"
True
它们本身就能得到一个结果。
2. 变量表达式
一个变量也可以是表达式。
age
name
score
变量表达式的结果就是变量当前保存的值。
3. 算术表达式
price * count
(a + b) / 2
结果通常是数字。
4. 比较表达式
age >= 18
score == 100
结果是 True 或 False。
5. 逻辑表达式
age >= 18 and has_ticket
score >= 60 or is_makeup_exam
结果也是 True 或 False。
6. 函数调用表达式
函数调用也可以是表达式,因为它可能返回一个结果。
len("Python")
int("123")
input("请输入姓名:")
例子:
length = len("Python")
print(length)
输出:
6
这里 len("Python") 是表达式,它的结果是 6。
二十、语句和表达式的区别
初学者有时会混淆表达式和语句。
可以这样简单区分:
- 表达式:能算出一个结果。
- 语句:完成一个操作。
例如:
10 + 20
这是表达式,结果是 30。
x = 10 + 20
这是赋值语句,它把表达式 10 + 20 的结果赋值给变量 x。
if x > 10:
print("大于 10")
这是条件语句,用来控制程序执行流程。
在教学中,不需要一开始讲得过于抽象,可以先让学生记住:
表达式通常能放在 print() 里面输出,因为它能算出一个值。
例如:
print(10 + 20)
print(age >= 18)
print(len("Python"))
二十一、不同类型之间的运算
Python 对不同数据类型之间的运算有一定规则。
1. 整数和浮点数运算
整数和浮点数可以一起做算术运算,结果通常是浮点数。
print(10 + 3.5)
print(10 * 2.0)
输出:
13.5
20.0
2. 字符串和字符串可以相加
print("Hello" + "Python")
输出:
HelloPython
如果想中间有空格:
print("Hello" + " " + "Python")
输出:
Hello Python
3. 字符串和数字不能直接相加
错误示例:
age = 18
print("年龄:" + age)
这会报错,因为字符串不能和整数直接拼接。
正确写法:
age = 18
print("年龄:" + str(age))
更推荐:
age = 18
print(f"年龄:{age}")
4. 字符串可以和整数相乘
print("Hi" * 3)
输出:
HiHiHi
但字符串不能和字符串相乘。
错误示例:
print("Hi" * "3")
如果数字来自 input(),要先转换:
times = int(input("请输入重复次数:"))
print("Hi" * times)
二十二、运算符使用中的常见错误
1. 把 = 和 == 混淆
错误示例:
age = 18
if age = 18:
print("年龄是 18")
问题:
if 条件中应该使用比较运算符 ==,不能使用赋值运算符 =。
正确写法:
age = 18
if age == 18:
print("年龄是 18")
2. 忘记 input() 的结果是字符串
错误示例:
a = input("请输入第一个数:")
b = input("请输入第二个数:")
print(a + b)
用户输入:
10
20
输出:
1020
原因:
input() 得到的是字符串,+ 在字符串之间表示拼接。
正确写法:
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print(a + b)
输出:
30
3. 除数为 0
错误示例:
print(10 / 0)
程序会报错,因为数学中不能除以 0。
可以在计算前判断:
b = int(input("请输入除数:"))
if b != 0:
print(10 / b)
else:
print("除数不能为 0")
4. 误以为 // 是四舍五入
print(5 // 2)
输出:
2
// 是整除,不是四舍五入。
如果要四舍五入,可以使用 round()。
print(round(5 / 2))
输出:
2
再如:
print(round(7 / 2))
输出:
4
5. 逻辑条件写错
错误示例:
score = 85
if score >= 60 or score <= 100:
print("成绩有效")
这段代码看起来像是判断成绩是否在 60 到 100 之间,但逻辑有问题。
因为很多数字都会满足其中一个条件。
比如 score = 150 时:
score >= 60
是 True,所以整个 or 表达式也是 True。
正确写法:
score = 85
if score >= 60 and score <= 100:
print("成绩有效")
也可以写成:
if 60 <= score <= 100:
print("成绩有效")
6. 运算顺序理解错误
result = 2 + 3 * 4
结果是 14,不是 20。
如果想先算加法,要写:
result = (2 + 3) * 4
建议学生:
不确定优先级时就加括号。
7. 用 is 判断普通值是否相等
不推荐:
a = 1000
b = 1000
if a is b:
print("相等")
普通值相等判断应使用 ==。
推荐:
a = 1000
b = 1000
if a == b:
print("相等")
is 通常用于判断是否是 None:
if result is None:
print("没有结果")
二十三、教学中可以这样讲
可以用生活中的例子解释:
运算符像数学符号和判断词。
+表示加。-表示减。>表示大于。and表示并且。or表示或者。in表示在不在某个范围里。
表达式就像一句“可以得出结果的话”。
例如:
price * count
这句话能算出总价。
score >= 60
这句话能判断是否及格。
age >= 18 and has_ticket
这句话能判断是否满足入场条件。
可以把表达式的结果分为两大类:
- 算出一个数,例如
10 + 20的结果是30。 - 判断真假,例如
score >= 60的结果是True或False。
二十四、课堂综合示例
示例:学生成绩判断程序
name = input("请输入学生姓名:")
score = float(input("请输入学生成绩:"))
attendance = float(input("请输入出勤率:"))
if 0 <= score <= 100 and 0 <= attendance <= 100:
if score >= 60 and attendance >= 80:
print(f"{name}通过课程")
else:
print(f"{name}没有通过课程")
else:
print("成绩或出勤率输入无效")
这段代码中包含:
- 赋值运算符:
= - 比较运算符:
<=、>= - 逻辑运算符:
and - 链式比较:
0 <= score <= 100 - 表达式:
score >= 60 and attendance >= 80 - 格式化输出:
f"{name}通过课程"
可以带学生一步一步分析:
- 输入姓名、成绩、出勤率。
- 判断成绩和出勤率是否在有效范围内。
- 如果有效,再判断是否达到通过条件。
- 输出最终结果。
二十五、课堂练习
练习 1:计算商品总价
请让用户输入商品单价和购买数量,计算总价。
参考答案:
price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))
total = price * count
print(f"商品总价是{total:.2f}元")
练习 2:判断奇偶数
请让用户输入一个整数,判断它是奇数还是偶数。
参考答案:
number = int(input("请输入一个整数:"))
if number % 2 == 0:
print("偶数")
else:
print("奇数")
练习 3:判断成绩是否有效
请让用户输入成绩,判断成绩是否在 0 到 100 之间。
参考答案:
score = float(input("请输入成绩:"))
if 0 <= score <= 100:
print("成绩有效")
else:
print("成绩无效")
练习 4:判断是否可以入场
入场条件:
- 年龄大于等于 18。
- 并且有门票。
请写程序判断用户是否可以入场。
参考答案:
age = int(input("请输入年龄:"))
has_ticket = input("是否有门票?请输入 yes 或 no:")
if age >= 18 and has_ticket == "yes":
print("可以入场")
else:
print("不能入场")
练习 5:判断用户名是否合法
禁止使用的用户名有:
["admin", "root", "test"]
请判断用户输入的用户名是否可以使用。
参考答案:
forbidden_names = ["admin", "root", "test"]
username = input("请输入用户名:")
if username not in forbidden_names:
print("用户名可以使用")
else:
print("用户名不能使用")
练习 6:分析表达式结果
请判断下面表达式的结果。
print(2 + 3 * 4)
print((2 + 3) * 4)
print(10 // 3)
print(10 % 3)
print(5 > 3 and 2 > 4)
print(5 > 3 or 2 > 4)
参考答案:
14
20
3
1
False
True
练习 7:修正错误代码
下面代码有什么问题?请改正。
age = input("请输入年龄:")
if age >= 18:
print("已成年")
else:
print("未成年")
参考答案:
问题是 input() 得到的是字符串,不能直接和整数 18 比较。
正确写法:
age = int(input("请输入年龄:"))
if age >= 18:
print("已成年")
else:
print("未成年")
练习 8:使用复合赋值计算总和
请使用循环和 += 计算 1 到 100 的和。
参考答案:
total = 0
for number in range(1, 101):
total += number
print(total)
输出:
5050
二十六、常见错误对照表
| 错误现象 | 常见原因 | 修改方法 |
|---|---|---|
if age = 18: 报错 |
把赋值 = 当成比较 == |
条件判断中使用 == |
输入 10 和 20 得到 1020 |
input() 得到字符串,+ 变成拼接 |
使用 int() 或 float() 转换 |
除法结果是 5.0 |
/ 的结果通常是浮点数 |
如果需要整数结果,按情况使用 // |
5 // 2 得到 2 |
// 是整除,不是四舍五入 |
四舍五入可使用 round() |
| 条件判断范围错误 | and 和 or 用错 |
范围判断通常用 and 或链式比较 |
| 字符串和数字相加报错 | 类型不同不能直接用 + 拼接 |
使用 str() 或 f-string |
用 is 判断两个普通值 |
混淆了值相等和对象相同 | 普通相等判断使用 == |
| 表达式结果和预期不同 | 没有注意运算符优先级 | 使用小括号明确计算顺序 |
二十七、总结
运算符是 Python 中用来计算、赋值、比较和判断的符号或关键字。
表达式是能够计算出一个结果的代码。
本节需要重点掌握:
- 算术运算符用于数学计算,例如
+、-、*、/、//、%、**。 - 赋值运算符用于给变量保存数据,例如
=、+=、-=。 - 比较运算符用于比较两个值,结果是
True或False。 - 逻辑运算符用于组合多个条件,包括
and、or、not。 - 成员运算符用于判断某个值是否在序列中,包括
in和not in。 - 运算符有优先级,不确定时可以使用小括号。
input()得到的是字符串,参与数学运算前要转换类型。=是赋值,==才是判断相等。
教学时可以让学生记住一句话:
运算符负责“怎么算、怎么比、怎么判断”,表达式负责“算出一个结果”。
学好运算符和表达式以后,学生就能更自然地学习条件判断、循环、函数和数据处理。