Python(十) 基础语法:顺序语句
一、为什么要学习顺序语句
学习 Python 程序结构时,通常会先接触三种基本结构:
- 顺序结构
- 选择结构
- 循环结构
其中,顺序结构是最基础的。
所谓顺序结构,就是程序按照代码书写的先后顺序,从上到下,一行一行执行。
例如:
print("第一步:起床")
print("第二步:洗漱")
print("第三步:吃早饭")
输出:
第一步:起床
第二步:洗漱
第三步:吃早饭
Python 会先执行第一行,再执行第二行,最后执行第三行。
这就是顺序执行。
顺序语句看起来简单,但它是理解所有程序的起点。后面学习条件判断、循环、函数时,也离不开顺序执行。
二、顺序语句的定义
顺序语句指的是按照代码出现的先后顺序依次执行的语句。
通俗地说:
写在前面的语句先执行,写在后面的语句后执行。
例如:
a = 10
b = 20
total = a + b
print(total)
执行顺序是:
- 把
10赋值给变量a。 - 把
20赋值给变量b。 - 计算
a + b,结果赋值给total。 - 输出
total的值。
输出:
30
如果顺序改变,程序结果可能也会改变。
三、什么是语句
在 Python 中,语句是程序执行的基本单位。
可以简单理解为:
一条语句就是让程序做一件事的代码。
例如:
name = "小明"
print(name)
这里有两条语句:
name = "小明":赋值语句。print(name):输出语句。
Python 程序通常就是由一条一条语句组成的。
四、顺序结构的特点
顺序结构有几个明显特点:
| 特点 | 说明 |
|---|---|
| 从上到下 | 代码按照书写顺序执行 |
| 从左到右 | 一行语句内部通常按表达式规则求值 |
| 不跳过 | 没有条件判断时,每条语句都会执行 |
| 不重复 | 没有循环时,每条语句一般只执行一次 |
| 依赖顺序 | 后面的语句可以使用前面语句产生的结果 |
例子:
name = "小明"
message = "你好," + name
print(message)
这三行必须按顺序执行。
如果先执行:
print(message)
程序会报错,因为 message 还没有被创建。
五、顺序语句和三大程序结构
程序中常见三种基本结构:
1. 顺序结构
代码从上到下依次执行。
print("打开冰箱")
print("放入水果")
print("关上冰箱")
2. 选择结构
根据条件决定执行哪一部分代码。
age = 18
if age >= 18:
print("已成年")
else:
print("未成年")
这里不是所有分支都会执行,而是根据条件选择执行。
3. 循环结构
重复执行某一段代码。
for i in range(3):
print("学习 Python")
这里 print("学习 Python") 会执行 3 次。
顺序结构是基础,选择结构和循环结构是在顺序执行的基础上加入了“判断”和“重复”。
六、顺序语句的基本执行过程
看下面代码:
print("程序开始")
name = "小明"
age = 18
print(name)
print(age)
print("程序结束")
执行顺序是:
- 输出
"程序开始"。 - 创建变量
name,保存"小明"。 - 创建变量
age,保存18。 - 输出
name。 - 输出
age。 - 输出
"程序结束"。
输出结果:
程序开始
小明
18
程序结束
课堂教学时,可以让学生用手指从第一行往下读,逐行分析程序做了什么。
七、常见顺序语句类型
Python 中很多基础语句都可以出现在顺序结构中。
常见顺序语句包括:
| 语句类型 | 示例 | 作用 |
|---|---|---|
| 赋值语句 | x = 10 |
保存数据 |
| 输入语句 | name = input(...) |
接收用户输入 |
| 输出语句 | print(...) |
显示结果 |
| 表达式语句 | func() |
执行表达式或函数调用 |
| 导入语句 | import math |
导入模块 |
| 函数调用语句 | print(len(text)) |
调用函数完成操作 |
注意:
严格来说,input() 和 print() 是函数调用,只是它们在教学中经常被称为输入语句和输出语句,方便初学者理解。
八、赋值语句
赋值语句用于把数据保存到变量中。
基本格式:
变量名 = 值
例子:
name = "小明"
age = 18
score = 95
赋值语句会按顺序执行。
x = 10
x = 20
print(x)
输出:
20
执行过程:
x = 10,变量x的值是10。x = 20,变量x被重新赋值为20。- 输出
x,得到20。
后一次赋值会覆盖前一次赋值。
九、表达式赋值
赋值号右边可以是表达式。
a = 10
b = 20
total = a + b
print(total)
输出:
30
这里:
total = a + b
执行时,Python 会先计算右边的 a + b,得到 30,再把结果赋值给 total。
也就是说:
赋值语句通常是先算右边,再赋给左边。
再看:
count = 0
count = count + 1
print(count)
输出:
1
这不是数学等式,而是更新变量。
十、输入语句
在基础教学中,通常把接收用户输入的代码称为输入语句。
Python 中常用 input() 接收键盘输入。
name = input("请输入姓名:")
print(name)
执行过程:
- 程序运行到
input()时暂停。 - 屏幕显示提示文字。
- 用户输入内容并按回车。
- 输入的内容作为字符串返回。
- 返回值赋值给变量
name。 - 程序继续向下执行。
注意:
input() 得到的结果一定是字符串。
age = input("请输入年龄:")
print(type(age))
即使用户输入 18,类型也是:
<class 'str'>
如果要参与数学计算,需要转换类型:
age = int(input("请输入年龄:"))
十一、输出语句
在基础教学中,通常把显示内容的代码称为输出语句。
Python 中常用 print() 输出内容。
print("你好,Python")
输出:
你好,Python
也可以输出变量:
name = "小明"
age = 18
print(name)
print(age)
输出:
小明
18
也可以输出表达式结果:
print(10 + 20)
输出:
30
十二、导入语句
导入语句用于导入模块,让程序可以使用模块中的功能。
例如:
import math
radius = 3
area = math.pi * radius ** 2
print(area)
这里执行顺序是:
- 导入
math模块。 - 给
radius赋值。 - 使用
math.pi计算圆面积。 - 输出结果。
注意:
通常要先导入模块,后使用模块。
错误示例:
print(math.pi)
import math
这会报错,因为使用 math 时,它还没有被导入。
十三、函数调用语句
调用函数也是一种常见的顺序执行语句。
例如:
text = "Python"
length = len(text)
print(length)
输出:
6
执行过程:
- 创建字符串变量
text。 - 调用
len(text),得到字符串长度。 - 把长度赋值给变量
length。 - 输出
length。
再比如:
numbers = [3, 1, 2]
numbers.sort()
print(numbers)
输出:
[1, 2, 3]
这里 numbers.sort() 是一条函数调用语句,它会对列表进行排序。
十四、顺序语句中的输入、处理、输出
很多初学程序都可以写成:
输入 -> 处理 -> 输出
这是顺序结构最常见的应用。
例子:计算两个数的和。
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
total = a + b
print(f"两个数的和是{total}")
执行过程:
- 输入第一个整数,赋值给
a。 - 输入第二个整数,赋值给
b。 - 计算
a + b,赋值给total。 - 输出结果。
这就是典型的顺序程序。
十五、顺序很重要
顺序语句最重要的特点就是:
前后顺序会影响程序结果。
1. 变量必须先定义再使用
错误:
print(name)
name = "小明"
正确:
name = "小明"
print(name)
2. 先输入,再计算
错误:
total = price * count
price = 10
count = 3
print(total)
这里会报错,因为计算 total 时,price 和 count 还没有定义。
正确:
price = 10
count = 3
total = price * count
print(total)
3. 先计算,再输出
price = 10
count = 3
print(total)
total = price * count
这会报错,因为输出 total 时,它还没有被赋值。
正确:
price = 10
count = 3
total = price * count
print(total)
十六、顺序改变会改变结果
看下面两段代码。
例子 1
x = 10
x = x + 5
x = x * 2
print(x)
执行过程:
x = 10x = x + 5,此时x变成15x = x * 2,此时x变成30
输出:
30
例子 2
x = 10
x = x * 2
x = x + 5
print(x)
执行过程:
x = 10x = x * 2,此时x变成20x = x + 5,此时x变成25
输出:
25
两段代码使用的语句很相似,只是顺序不同,结果就不同。
十七、顺序语句中的注释
注释不会被 Python 执行。
# 输入学生姓名
name = input("请输入姓名:")
# 输入学生成绩
score = int(input("请输入成绩:"))
# 输出学生信息
print(name, score)
执行时,Python 会忽略以 # 开头的注释。
注释的作用是帮助人理解代码。
在顺序程序中,注释可以用来标明每一步做什么。
例如:
# 第一步:输入数据
price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))
# 第二步:计算总价
total = price * count
# 第三步:输出结果
print(f"应付金额:{total:.2f}元")
这种写法很适合教学。
十八、顺序语句中的空行
空行不会影响程序执行,一般用于分隔不同逻辑。
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
message = f"{name}今年{age}岁"
print(message)
这里的空行把代码分成了三部分:
- 输入数据。
- 组织信息。
- 输出信息。
空行让代码更好读,但不会改变执行顺序。
十九、一行写多条语句
Python 允许使用分号 ; 在一行中写多条简单语句。
例如:
a = 10; b = 20; print(a + b)
输出:
30
但是不推荐初学者这样写。
更推荐:
a = 10
b = 20
print(a + b)
原因:
- 每行一条语句更清晰。
- 更容易调试。
- 更符合 Python 代码风格。
- 更适合教学和阅读。
教学时可以告诉学生:
知道可以这样写,但平时不建议这样写。
二十、一条语句写成多行
有时候一条语句太长,可以拆成多行。
1. 小括号内自动换行
total = (
90
+ 85
+ 100
)
print(total)
输出:
275
2. 列表、字典、元组中自然换行
students = [
"小明",
"小红",
"小刚",
]
print(students)
这种写法常用于数据较多时,让代码更整齐。
字典也常这样写:
student = {
"name": "小明",
"age": 18,
"score": 95,
}
print(student)
3. 反斜杠换行
Python 也可以使用反斜杠 \ 表示一条语句还没有结束。
total = 90 + 85 + \
100
print(total)
不过教学和实际开发中,更推荐使用小括号换行,因为更清晰,也更不容易出错。
二十一、顺序语句中的缩进
在最基本的顺序结构中,代码通常顶格写。
name = "小明"
age = 18
print(name)
print(age)
如果没有 if、for、while、def、class 等引出代码块的语句,不要随便缩进。
错误:
name = "小明"
age = 18
print(name)
这会报缩进错误。
缩进一般表示某个代码块的内部内容。
例如:
if True:
print("这行在 if 代码块中")
print("这行回到顺序结构")
二十二、顺序语句和表达式的区别
表达式是能计算出一个结果的代码。
例如:
10 + 20
age >= 18
len("Python")
语句是让程序执行某个操作的代码。
例如:
total = 10 + 20
print(total)
在顺序程序中,经常会把表达式放到语句中使用。
price = 10
count = 3
total = price * count
这里:
price * count
是表达式。
total = price * count
是赋值语句。
二十三、顺序语句和代码块的关系
顺序语句不一定只出现在最外层。
在一个代码块内部,语句也通常是顺序执行的。
例如:
if True:
print("第一行")
print("第二行")
print("第三行")
在 if 代码块内部,这三条语句仍然是从上到下顺序执行。
再比如函数内部:
def greet():
name = "小明"
message = "你好," + name
print(message)
greet()
函数体内部的语句也是顺序执行。
所以:
顺序执行是最基本的执行方式,即使在条件、循环、函数内部也存在。
二十四、常见顺序程序示例
示例 1:输出个人信息
name = "小明"
age = 18
city = "北京"
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")
执行顺序:
- 保存姓名。
- 保存年龄。
- 保存城市。
- 输出姓名。
- 输出年龄。
- 输出城市。
示例 2:计算矩形面积
length = float(input("请输入矩形的长:"))
width = float(input("请输入矩形的宽:"))
area = length * width
print(f"矩形面积是{area:.2f}")
执行顺序:
- 输入长。
- 输入宽。
- 计算面积。
- 输出面积。
示例 3:计算平均分
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
english = int(input("请输入英语成绩:"))
total = chinese + math + english
average = total / 3
print(f"总分:{total}")
print(f"平均分:{average:.2f}")
执行顺序:
- 输入语文成绩。
- 输入数学成绩。
- 输入英语成绩。
- 计算总分。
- 计算平均分。
- 输出总分和平均分。
示例 4:摄氏度转华氏度
celsius = float(input("请输入摄氏温度:"))
fahrenheit = celsius * 9 / 5 + 32
print(f"华氏温度是{fahrenheit:.2f}")
这是典型的顺序程序:
输入摄氏度 -> 计算华氏度 -> 输出结果
二十五、顺序语句的教学案例:买水果
下面是一个贴近日常生活的课堂案例。
apple_price = float(input("请输入苹果单价:"))
apple_count = float(input("请输入苹果重量:"))
banana_price = float(input("请输入香蕉单价:"))
banana_count = float(input("请输入香蕉重量:"))
apple_total = apple_price * apple_count
banana_total = banana_price * banana_count
total = apple_total + banana_total
print(f"苹果金额:{apple_total:.2f}元")
print(f"香蕉金额:{banana_total:.2f}元")
print(f"总金额:{total:.2f}元")
可以让学生按步骤分析:
- 输入苹果单价。
- 输入苹果重量。
- 输入香蕉单价。
- 输入香蕉重量。
- 计算苹果金额。
- 计算香蕉金额。
- 计算总金额。
- 输出结果。
这个例子能很好体现顺序结构:
先有数据,才能计算;先计算,才能输出。
二十六、顺序语句的注意事项
1. 变量要先赋值再使用
错误:
print(total)
total = 100
正确:
total = 100
print(total)
2. 依赖关系要按顺序写
错误:
average = total / 3
total = chinese + math + english
正确:
total = chinese + math + english
average = total / 3
因为 average 依赖 total,所以必须先计算 total。
3. input() 得到的是字符串
错误:
a = input("请输入第一个数:")
b = input("请输入第二个数:")
total = a + b
print(total)
如果输入 10 和 20,输出是:
1020
正确:
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
total = a + b
print(total)
输出:
30
4. 不要把所有代码挤在一起
不推荐:
a=int(input("a:"));b=int(input("b:"));print(a+b)
推荐:
a = int(input("请输入 a:"))
b = int(input("请输入 b:"))
total = a + b
print(total)
后者更适合学习、讲解和调试。
5. 命名要清楚
不推荐:
a = 10
b = 3
c = a * b
print(c)
推荐:
price = 10
count = 3
total = price * count
print(total)
变量名清楚,顺序程序就更容易读懂。
6. 每一步尽量只做一件主要事情
不太适合初学者:
print(float(input("请输入单价:")) * int(input("请输入数量:")))
更适合教学:
price = float(input("请输入单价:"))
count = int(input("请输入数量:"))
total = price * count
print(total)
拆开写更容易理解:
- 输入单价。
- 输入数量。
- 计算总价。
- 输出总价。
7. 注意代码的可读性
顺序语句虽然简单,但也要写得清楚。
推荐使用:
- 合理变量名
- 适当空行
- 必要注释
- 一行一条主要语句
- 先输入、再处理、再输出的结构
二十七、常见错误和改正方法
1. 使用未定义变量
错误:
print(name)
name = "小明"
报错原因:
name 在使用前没有赋值。
正确:
name = "小明"
print(name)
2. 计算顺序写反
错误:
average = total / 3
total = 90 + 85 + 100
正确:
total = 90 + 85 + 100
average = total / 3
3. 输入数据没有转换类型
错误:
age = input("请输入年龄:")
next_age = age + 1
正确:
age = int(input("请输入年龄:"))
next_age = age + 1
4. 缩进错误
错误:
name = "小明"
print(name)
正确:
name = "小明"
print(name)
没有代码块时,不要随便缩进。
5. 把赋值和比较混淆
错误:
score == 95
print(score)
这里 score == 95 是比较表达式,不是赋值语句。
如果之前没有定义 score,会报错。
正确:
score = 95
print(score)
二十八、课堂讲解建议
教学时可以用生活流程来讲顺序结构。
例如“泡茶”:
烧水 -> 放茶叶 -> 倒水 -> 等待 -> 喝茶
顺序不能乱。
如果先喝茶,再倒水,就不合理。
对应到程序:
print("烧水")
print("放茶叶")
print("倒水")
print("等待")
print("喝茶")
再换成程序常见流程:
输入 -> 处理 -> 输出
可以给学生一个简单口诀:
从上到下依次走,先有数据再计算,先算结果再输出。
二十九、课堂练习
练习 1:判断输出顺序
阅读代码,写出输出结果。
print("A")
print("B")
print("C")
参考答案:
A
B
C
练习 2:修正顺序错误
下面代码有什么问题?请改正。
print(total)
total = 100
参考答案:
问题是变量 total 在赋值前就被使用。
正确写法:
total = 100
print(total)
练习 3:计算两个数的和
请让用户输入两个整数,计算并输出它们的和。
参考答案:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
total = a + b
print(f"两个数的和是{total}")
练习 4:计算矩形面积
请让用户输入矩形的长和宽,计算面积。
参考答案:
length = float(input("请输入矩形的长:"))
width = float(input("请输入矩形的宽:"))
area = length * width
print(f"矩形面积是{area:.2f}")
练习 5:分析变量变化
阅读代码,判断输出结果。
x = 5
x = x + 3
x = x * 2
print(x)
参考答案:
16
分析:
x = 5x = x + 3,此时x是8x = x * 2,此时x是16
练习 6:调整代码顺序
请把下面代码调整成正确顺序。
print(f"平均分是{average}")
average = total / 3
total = chinese + math + english
chinese = 90
math = 85
english = 100
参考答案:
chinese = 90
math = 85
english = 100
total = chinese + math + english
average = total / 3
print(f"平均分是{average}")
练习 7:摄氏度转华氏度
请让用户输入摄氏温度,转换成华氏温度并输出。
公式:
华氏温度 = 摄氏温度 * 9 / 5 + 32
参考答案:
celsius = float(input("请输入摄氏温度:"))
fahrenheit = celsius * 9 / 5 + 32
print(f"华氏温度是{fahrenheit:.2f}")
练习 8:找出不推荐写法
下面代码能运行,但为什么不推荐?
a=10;b=20;print(a+b)
参考答案:
虽然能运行,但不推荐,因为一行写多条语句不清晰,不方便阅读和调试。
推荐:
a = 10
b = 20
print(a + b)
三十、常见错误对照表
| 错误现象 | 常见原因 | 修改方法 |
|---|---|---|
NameError |
变量使用前没有赋值 | 先赋值,再使用 |
| 输出结果不是预期 | 语句顺序写错 | 按依赖关系调整顺序 |
输入 10 和 20 得到 1020 |
input() 得到字符串 |
使用 int() 或 float() 转换 |
| 缩进错误 | 没有代码块时多写了缩进 | 顺序语句通常顶格写 |
| 代码难读 | 一行写太多内容 | 拆成多行,一行做一件事 |
| 变量含义不清 | 变量名太随意 | 使用有意义的变量名 |
score == 95 后无法输出 score |
把比较当成赋值 | 赋值使用 score = 95 |
三十一、总结
顺序语句是 Python 程序中最基础的执行方式。
顺序语句的核心特点是:
程序按照代码书写顺序,从上到下依次执行。
本节需要重点掌握:
- 顺序语句按从上到下的顺序执行。
- 变量必须先赋值再使用。
- 后面的计算可以依赖前面的结果。
- 改变语句顺序,程序结果可能改变。
- 常见顺序语句包括赋值、输入、输出、导入、函数调用等。
- 顺序结构常见流程是:输入、处理、输出。
input()得到字符串,需要计算时要转换类型。- 顺序语句通常顶格写,不要随便缩进。
- 一行写一条主要语句更清晰。
合理变量名、空行和注释能让顺序程序更容易理解。
教学时可以让学生记住一句话:
顺序语句就是程序一步一步往下走,先做前面的事,再做后面的事。