当前位置: 首页 > news >正文

第3篇_Python流程控制与函数:代码逻辑的基石

前言

在第二篇博客中,我们系统学习了 Python 的数据类型与运算符。你现在应该已经能够创建各种类型的数据,并使用运算符对它们进行计算了。

但是,到目前为止,我们写的代码都是从上到下顺序执行的——每一条语句只执行一次,执行完就结束。这种线性代码能做很多事情,但远远不够。

真实世界中的程序需要做决策:根据不同的情况执行不同的代码。需要重复做某件事:把同样的操作执行很多次。需要把代码封装起来反复使用——这就是流程控制函数的作用。

本篇我们将学习:

  1. 条件语句(if / elif / else):让程序做选择
  2. 循环语句(for / while):让程序重复执行
  3. 跳转语句(break / continue / pass):控制循环的执行流程
  4. 函数基础(def / return):把代码封装成可复用的单元
  5. 函数的参数:位置参数、关键字参数、默认参数、可变参数
  6. 函数的作用域:局部变量与全局变量

这些是编程的核心骨架。掌握它们,你才真正有能力写出"能思考"的程序。

让我们开始吧!🚀

一、条件语句:让程序做选择

1.1 为什么需要条件语句

程序的一个基本能力是"根据不同情况做不同的事"。

举一个生活的例子:如果明天下雨,我就带伞;否则,我就不带伞。这个"如果…就…否则…"的逻辑,在程序中就叫条件语句

在 Python 中,条件语句的关键字是:

  • if—— 如果
  • elif—— 否则如果(else if 的缩写)
  • else—— 否则

1.2 最简单的 if 语句

先看一个例子:

# 场景:判断一个数是否大于 10x=15ifx>10:print("x 大于 10")print("程序结束")

输出:

x 大于 10 程序结束

逐行解析:

x=15

定义一个变量 x,值为 15。

ifx>10:

if是条件语句的关键字。x > 10是一个表达式,它的值是True(真)或False(假)。如果条件成立(True),就执行下面缩进的代码块;如果不成立(False),就跳过这个代码块。

print("x 大于 10")

注意这一行前面有4个空格的缩进。在 Python 中,缩进不是装饰,而是语法的一部分!缩进决定了哪些代码属于 if 语句的执行范围。没有缩进的代码(比如print("程序结束")),不属于 if 语句,总会被执行。

1.3 if…else:两个分支

如果条件不成立,我们想执行另一段代码,用else

x=5ifx>10:print("x 大于 10")else:print("x 不大于 10")# 输出:x 不大于 10

语法结构:

if 条件: 条件成立时执行的代码 else: 条件不成立时执行的代码

1.4 if…elif…else:多个分支

当有多种情况需要判断时,用elif(else if 的缩写):

score=85ifscore>=90:print("成绩等级:A")elifscore>=80:print("成绩等级:B")elifscore>=70:print("成绩等级:C")elifscore>=60:print("成绩等级:D")else:print("成绩等级:F(不及格)")# 输出:成绩等级:B

逐行解析:

score = 85→ 得分是 85 分。

if score >= 90:→ 85 >= 90?不成立,跳过。

elif score >= 80:→ 85 >= 80?成立!执行这个分支,输出"B",然后整个 if…elif…else 语句结束,后面两个 elif 和 else 全部跳过。

💡关键理解:if…elif…else 语句会从上到下依次判断条件,遇到第一个成立的条件就执行对应代码,然后立即退出整个语句。后续条件不再判断。

1.5 条件表达式详解

if后面跟的是一个布尔表达式,即值为 True 或 False 的表达式。可以用以下几类:

比较运算符:

运算符含义示例
==等于x == 10
!=不等于x != 10
>大于x > 10
<小于x < 10
>=大于等于x >= 10
<=小于等于x <= 10
# 比较运算示例name="Alice"print(name=="Alice")# True(相等)print(name!="Bob")# True(不等于)

逻辑运算符:

运算符含义示例
and逻辑与(两者都成立才True)x > 0 and x < 10
or逻辑或(至少一个成立就True)x < 0 or x > 100
not逻辑非(取反)not (x > 10)
# 逻辑运算符示例age=25height=180ifage>=18andheight>=175:print("符合条件:成年且身高≥175cm")# 输出:符合条件:成年且身高≥175cm

成员运算符与身份运算符:

运算符含义示例
in在…中"a" in "apple"→ True
not in不在…中"b" not in "apple"→ True
is是同一个对象x is None
is not不是同一个对象x is not None

⚠️易错点==is的区别:

  • ==比较的是值是否相等( equality )
  • is比较的是是否为同一个对象( identity )

对于小整数和短字符串,Python 会进行** interning(驻留)**,即相同的值可能共享同一个对象,==is都为 True。但对于较大的值,它们通常不相等:

a=1000b=1000print(a==b)# True(值相等)print(aisb)# False(不是同一个对象)

1.6 条件语句的嵌套

条件语句可以嵌套使用,但要注意缩进层级

age=20has_ticket=Trueifage>=18:ifhas_ticket:print("允许入场")else:print("没票,不准入场")else:print("未成年,不准入场")# 输出:允许入场

嵌套层级图解:

if age >= 18: ← 第1层 if if has_ticket: ← 第2层 if(嵌套在第1层内) print("允许入场") else: ← 第2层 else print("没票,不准入场") else: ← 第1层 else print("未成年,不准入场")

💡建议:嵌套层次一般不要超过 3 层。嵌套太深会导致代码难以阅读和维护,这时可以考虑把内层逻辑封装成函数。

二、循环语句:让程序重复执行

2.1 为什么需要循环

http://www.jsqmd.com/news/674355/

相关文章:

  • 4 个免费好用的配图skill
  • jQuery 遍历 - 同胞(siblings)
  • 题解:AtCoder AT_awc0002_d Keys and Treasure Boxes
  • 用Unity ML-Agents训练一个会踢足球的AI:从场景导入到模型部署完整实战
  • COF-8@Fe₃O₄ NPs,COF-8修饰四氧化三铁纳米颗粒,合成及纯化过程
  • 微信生态的技术引擎API
  • 价格型需求响应:分时电价下光伏微网储能系统多目标容量优化配置研究
  • 如何正确使用 React 的 useContext Hook 管理组件状态
  • 别再只盯着ChatGPT了!从扫地机器人到工业机械臂,一文看懂AI如何让机器“活”起来
  • AI CRM价值模式测评:功能交付还是结果交付?
  • Mobilerun终极指南:用自然语言轻松控制Android和iOS设备
  • 华为WATCH FIT 5系列发布:轻薄时尚+专业健康,成年轻用户智能穿戴更优解
  • Co-MOF-74@Fe₃O₄ NPs,Co-MOF-74修饰四氧化三铁纳米颗粒,反应机制
  • 为什么 Iceberg v3 是数据湖仓的“iPhone 时刻“?
  • ANSYS WORKBENCH轴承动力学仿真:内圈、外圈及滚子故障模拟与凯斯西储大学SKF轴承...
  • STNN算法研究
  • Unity学习笔记(六)——3DRPG游戏(4)
  • 如何永久保存QQ空间青春记忆?GetQzonehistory一键备份终极方案
  • 从理论到实战:手把手教你用Python(NumPy+Pandas)搞定拉丁超立方抽样并导出Excel
  • 2026 云南 AIGEO 服务市场对比分析:云南企服科技综合实力评估
  • 2026最稳代练创业项目:三角洲护航系统——全端部署+智能匹配,破解获客与信任难题
  • 存储过程详解:把SQL逻辑“打包”存起来,下次一键调用!|转行学DB第12天
  • Vue3项目里,除了clearFiles,Element-Plus上传组件还有哪些隐藏技巧?
  • 国际半导体全产业链展会推荐:全球覆盖上下游优质展会精选 - 品牌2026
  • 全国一体化算力网调度:政务 AI 规模化应用的算力底座如何搭建
  • 多视角视频扩散策略:一种三维时空-觉察视频动作模型
  • GD32F103串口调试:从printf重定向到中断收发,一个工程搞定所有(附完整代码)
  • JavaScript中严格模式use-strict对引擎解析的辅助
  • AIGC部署和生成图片
  • 移动号码状态查询 API 集成指南