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

Python全栈修炼之路 | 第6篇:条件判断与循环控制

作者:还怪好嘞
发布时间:2026-05-25
难度:⭐⭐⭐
阅读时长:约30分钟


前言

程序的核心能力在于决策重复。条件判断让程序能够根据不同情况做出不同选择,循环控制则让程序能够高效地处理重复性任务。本文将深入讲解Python中的条件判断与循环控制机制,从基础语法到底层原理,助你写出更优雅、更高效的代码。


一、条件判断:程序的智能决策

1.1 if/elif/else 基础语法

Python的条件判断语法简洁直观,使用缩进来表示代码块。

# 基础条件判断score=85ifscore>=90:grade='A'elifscore>=80:grade='B'elifscore>=70:grade='C'elifscore>=60:grade='D'else:grade='F'print(f"成绩等级:{grade}")# 输出: 成绩等级: B

关键要点:

  • elif是 “else if” 的缩写,可以有多个
  • 条件判断从上到下执行,第一个为True的条件会被执行,其余被跳过
  • 使用4个空格缩进(PEP 8规范)

1.2 条件表达式(三元运算符)

Python支持简洁的条件表达式:

# 传统写法ifage>=18:status="成年人"else:status="未成年人"# 条件表达式(更简洁)status="成年人"ifage>=18else"未成年人"# 嵌套条件表达式(谨慎使用,可读性降低)result="优秀"ifscore>=90else"良好"ifscore>=80else"及格"ifscore>=60else"不及格"

1.3 match-case 模式匹配(Python 3.10+)

Python 3.10引入了match-case语句,提供更强大的模式匹配能力:

defhandle_command(command):matchcommand:case"start":return"启动系统"case"stop":return"停止系统"case"restart":return"重启系统"case_:returnf"未知命令:{command}"# 带数据提取的模式匹配defanalyze_point(point):matchpoint:case(0,0):return"原点"case(x,0):returnf"x轴上的点,x={x}"case(0,y):returnf"y轴上的点,y={y}"case(x,y):returnf"普通点,坐标({x},{y})"case_:return"不是有效的点"print(analyze_point((3,0)))# 输出: x轴上的点,x=3

match-case vs if-elif 对比:

特性if-elifmatch-case
版本要求所有Python版本Python 3.10+
适用场景复杂条件判断数据结构匹配
可读性条件复杂时较差模式清晰时更好
性能逐个条件判断内部优化,通常更快

二、布尔值的本质

2.1 真值测试规则

在Python中,以下值被视为False

  • None
  • False
  • 数值零:0,0.0,0j
  • 空序列:'',[],(),{},set(),range(0)

其余所有值都被视为True

# 真值测试示例values=[0,1,"","hello",[],[1,2],None,True]forvinvalues:ifv:print(f"{v!r}是真值")else:print(f"{v!r}是假值")

2.2 短路求值

Python的andor运算符使用短路求值

# and: 第一个为False就返回第一个值,否则返回第二个值result1=0and100# 结果: 0result2=50and100# 结果: 100# or: 第一个为True就返回第一个值,否则返回第二个值result3=0or100# 结果: 100result4=50or100# 结果: 50# 实用技巧:设置默认值name=user_inputor"匿名用户"

三、循环控制:重复的艺术

3.1 for 循环

Python的for循环用于遍历可迭代对象:

# 遍历列表fruits=["苹果","香蕉","橙子"]forfruit
http://www.jsqmd.com/news/892959/

相关文章:

  • 中山琪朗丨2026 精选推荐・实力工厂,酒店灯饰定制 + 高端定制灯饰 - 资讯速览
  • 2026年国内五大特色营销服务机构深度对比 - GEO优化
  • 数智营销服务商能力评估参考:四个维度看汇成广告的落地效果 - 资讯速览
  • ClaudeCode入门11-CLAUDE.md深度配置(小白入门:让AI真正“懂“你的项目,效率翻10倍的秘密武器)
  • KMS_VL_ALL_AIO:告别Windows和Office激活困扰的智能解决方案
  • 食品标签“文字游戏”何时休?——透视“名不副实”背后的标准与监管困局
  • AI智能体时代来了!一个让普通人也能1人运营一家公司的开源社区火了
  • 降权、预算归零、错失窗口期:2026年企业选择SEO服务商最容易踩的三个大坑 - GEO优化
  • 基于BCA特征选择与CNN-RNN混合模型的情感分析优化实践
  • 市面上的3D低代码编辑器真有黑科技?拆开底层:全是Three.js套壳!
  • Java程序设计(第3版)第四章——方法的重载
  • 2026年国产插入式超声波流量计品牌推荐:技术演进、市场格局与十大品牌深度测评 - 仪表品牌排行榜
  • 5分钟掌握BetterNCM安装器:让你的网易云音乐变身全能播放器
  • 【算法分析与设计】第9篇:平摊分析与聚合核算技术
  • 【会议征稿通知 | 中南民族大学主办 | IET出版 | EI 、Scopus稳定检索】第十一届人工智能与工程管理国际学术会议(ICAIEM 2026)
  • MySQL 多表查询完全指南:JOIN 与子查询
  • 21.8k stars!告别“读代码读到怀疑人生“:这个开源工具让任何代码库秒变可视化知识图谱!
  • 5分钟掌握Zotero Style:让文献管理变得优雅高效的终极指南
  • 【考试总结】2026年5月23日系统架构设计师考试总结
  • DeepSeek降AI提示词大全+热门降AI工具横向测评:我把AI率干到了6%! - 殷念写论文
  • 2026 年论文双检通关指南:9 款查重 + 降 AIGC 工具横评
  • 点云扫描 vs 高斯重建:数字孪生别再乱选!一个落地、一个只能看
  • 游标码光电角度编码器原理教育八讲(一)
  • 昇腾NPU上的NumPy兼容层:asnumpy如何让Python代码自动加速3倍
  • 【2026年郑州再生资源回收口碑推荐】 - 资讯速览
  • J Hepatol(IF=33.0)英国帝国理工学院:基于机器学习的影像组学模型在预测肝细胞癌免疫治疗结局中优于临床生物标志物
  • 别再只会点灯了!用STM32CubeMx配置GPIO输出模式(推挽/开漏)的实战避坑指南
  • 面试官:Plan-Execute-Replan 和 ReAct 有啥区别?
  • 3步完成BetterNCM插件管理器安装:彻底改造网易云音乐体验的智能解决方案
  • O.o?MCP 的尽头是情趣玩具?先别急,搞懂它到底是什么