news 2026/5/7 19:06:59

Python 流程控制详解:条件语句 + 循环语句 + 人生重开模拟器实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 流程控制详解:条件语句 + 循环语句 + 人生重开模拟器实战

Python 流程控制详解

Python 中的流程控制是编程的基础,它允许程序根据条件或重复执行某些代码块。主要包括条件语句(if、elif、else)和循环语句(for、while)。下面我将一步步详解它们,并通过示例说明。最后,我们通过一个“人生重开模拟器”的实战项目来综合应用这些知识。

我会使用代码示例来演示,每个示例后附带解释和预期输出。假设你有Python环境,如果你想运行这些代码,可以直接复制粘贴。

1. 条件语句(Conditional Statements)

条件语句用于根据某个条件(布尔表达式)来决定是否执行某些代码。Python 的条件语句结构简单,没有括号,但需要注意缩进(通常用4个空格)。

基本语法:
  • if 语句:如果条件为真(True),执行代码块。
  • elif 语句(可选):else if 的缩写,如果前面的 if 为假,但这个条件为真,则执行。
  • else 语句(可选):如果所有前面的条件都为假,则执行。

示例:

age=18ifage<18:print("你还是个孩子。")elifage==18:print("恭喜,你成年了!")else:print("你已经是大人了。")

解释

  • 这里检查age的值。
  • 如果age < 18,打印第一句。
  • 如果不满足,但age == 18,打印第二句。
  • 否则,打印第三句。
  • 输出:恭喜,你成年了!(因为 age=18)。
嵌套条件:

你可以嵌套 if 语句,实现更复杂的逻辑。

示例:

score=85ifscore>=60:ifscore>=90:print("优秀!")else:print("及格,继续努力。")else:print("不及格,需要补考。")

解释

  • 先检查是否及格(>=60),如果是的,再检查是否优秀(>=90)。
  • 输出:及格,继续努力。(因为 85 >=60 但 <90)。
条件表达式(三元运算符):

Python 支持简洁的条件表达式,用于简单赋值。

示例:

x=10result="正数"ifx>0else"非正数"print(result)

解释

  • 如果 x > 0,则 result = “正数”;否则 = “非正数”。
  • 输出:正数

注意事项

  • 条件可以是任何返回布尔值的表达式,如比较运算符(==, !=, >, <, >=, <=)、逻辑运算符(and, or, not)。
  • 空列表、空字符串等 falsy 值会被视为 False。
  • 避免过多嵌套,保持代码可读性。
2. 循环语句(Loop Statements)

循环用于重复执行代码块。Python 有两种主要循环:for 和 while。

for 循环:

用于遍历序列(如列表、元组、字符串、范围)中的每个元素。

基本语法:

for变量in可迭代对象:# 代码块

示例(遍历列表):

fruits=["苹果","香蕉","橙子"]forfruitinfruits:print(fruit)

解释

  • 依次取出 fruits 中的每个元素,赋给 fruit 并打印。
  • 输出:
    苹果 香蕉 橙子

示例(使用 range()):

foriinrange(5):# range(5) 生成 0 到 4print(i)

解释

  • range(start, stop, step):从 start 到 stop-1,步长 step(默认1)。
  • 输出:0 1 2 3 4(每行一个)。
while 循环:

当条件为真时,重复执行代码块。适合不确定循环次数的情况。

基本语法:

while条件:# 代码块

示例:

count=0whilecount<3:print("计数:",count)count+=1# 必须有递增,否则无限循环

解释

  • 只要 count < 3,就打印并递增 count。
  • 输出:
    计数: 0 计数: 1 计数: 2
循环控制语句:
  • break:立即退出循环。
  • continue:跳过当前迭代,继续下一次。
  • else 子句(可选):循环正常结束(没有 break)时执行。

示例(break 和 continue):

foriinrange(10):ifi==3:continue# 跳过 3ifi==7:break# 在 7 退出print(i)else:print("循环正常结束")

解释

  • 打印 0,1,2,4,5,6(跳过3,7前退出)。
  • else 不执行,因为有 break。
  • 输出:0 1 2 4 5 6(每行一个)。

注意事项

  • 避免无限循环:在 while 中确保条件会变为 False。
  • for 常用于已知次数,while 用于未知。
  • 可以嵌套循环,如双层 for 实现矩阵遍历。
3. 人生重开模拟器实战

现在,我们结合条件和循环做一个简单项目:人生重开模拟器。这是一个文本-based 游戏,模拟人生从出生到死亡的过程。使用随机事件,通过条件判断决策,通过循环模拟人生阶段。

项目需求

  • 模拟人生阶段:童年、青少年、成年、老年。
  • 每个阶段有随机事件(好/坏),影响“幸福值”和“财富值”。
  • 使用循环遍历阶段,使用条件判断事件结果。
  • 如果幸福值<0或财富值<0,游戏结束(“人生失败”)。
  • 否则,到老年结束,显示最终分数。

我们需要导入 random 模块来生成随机数。

完整代码:

importrandom# 初始化happiness=50# 幸福值wealth=50# 财富值stages=["童年","青少年","成年","老年"]print("欢迎来到人生重开模拟器!初始幸福值:50, 财富值:50")# 循环遍历人生阶段forstageinstages:print(f"\n进入{stage}阶段...")# 随机事件:生成 -20 到 20 的变化event_hap=random.randint(-20,20)event_wea=random.randint(-20,20)# 条件判断事件类型ifevent_hap>0andevent_wea>0:print("好运!遇到贵人,幸福和财富都增加。")elifevent_hap<0andevent_wea<0:print("倒霉!遭遇挫折,幸福和财富都减少。")elifevent_hap>0:print("开心的事!幸福增加,但财富变化不大。")else:print("挑战来临!财富变化,幸福受影响。")# 更新值happiness+=event_hap wealth+=event_weaprint(f"当前幸福值:{happiness}, 财富值:{wealth}")# 检查是否失败ifhappiness<0orwealth<0:print("人生失败!游戏结束。")break# 退出循环else:# 循环正常结束total_score=happiness+wealthprint(f"\n恭喜完成人生!最终分数:{total_score}")iftotal_score>150:print("完美人生!")eliftotal_score>100:print("不错的人生。")else:print("普通的人生,继续努力。")

解释

  • 循环:for 遍历 stages 列表,模拟每个阶段。
  • 条件:if-elif-else 判断事件类型,并更新值。
  • 随机:使用 random.randint 生成变化。
  • break:如果值<0,提前结束。
  • else 子句:循环结束时计算分数,并用条件判断评价。

运行示例(输出因随机而异):
假设一次运行:

欢迎来到人生重开模拟器!初始幸福值:50, 财富值:50 进入 童年 阶段... 开心的事!幸福增加,但财富变化不大。 当前幸福值: 65, 财富值: 42 进入 青少年 阶段... 好运!遇到贵人,幸福和财富都增加。 当前幸福值: 78, 财富值: 58 进入 成年 阶段... 倒霉!遭遇挫折,幸福和财富都减少。 当前幸福值: 60, 财富值: 40 进入 老年 阶段... 挑战来临!财富变化,幸福受影响。 当前幸福值: 45, 财富值: 55 恭喜完成人生!最终分数: 100 普通的人生,继续努力。

这个项目展示了流程控制的实际应用。你可以扩展它,比如添加用户输入(input())来做选择决策,进一步使用条件和循环。

如果有疑问或想修改代码,随时问我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 11:27:02

Java核心语法:从变量到流程控制

Java 的核心语法是学习 Java 编程的起点&#xff0c;主要包括变量与数据类型、运算符、流程控制&#xff08;条件判断 循环&#xff09;等基础内容。下面从最基础的部分开始&#xff0c;系统地讲解这些核心语法&#xff0c;并配以清晰的示例和流程图参考。 1. 变量与数据类型…

作者头像 李华
网站建设 2026/5/4 22:30:19

制作一个简单的HTML个人网页

以下是一个简单却新颖的单页个人网页设计示例&#xff08;2026 年流行趋势向&#xff09;&#xff0c;采用纯 HTML CSS&#xff08;无框架、无 JS 依赖&#xff09;&#xff0c;体积小、加载快、手机友好。 核心创意点&#xff1a; 不对称分块布局 微妙的渐变悬停&#xff…

作者头像 李华
网站建设 2026/5/1 22:34:29

操作系统进程间通信(IPC)的庖丁解牛

操作系统进程间通信&#xff08;IPC, Inter-Process Communication&#xff09;是 多进程系统中协调、同步与数据交换的核心机制。它解决了 进程隔离性 与 协作需求 之间的根本矛盾。理解 IPC&#xff0c;是掌握高并发、分布式系统、安全模型的基石。一、为什么需要 IPC&#x…

作者头像 李华
网站建设 2026/5/1 14:02:09

【大数据毕设源码分享】基于springboot+数据可视化用户信用评估系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/1 4:03:25

YOLOv11 知识蒸馏完整实战:Teacher–Student 训练策略与性能飞跃

文章目录 YOLOv11知识蒸馏实战:让小模型拥有大模型90%精度,速度提升3倍的终极教程 一、知识蒸馏:让小模型“模仿”大模型的底层逻辑 二、原理拆解:双阶段蒸馏的“精准投喂” 三、核心代码实现:手把手改造YOLOv11 步骤1:定义蒸馏损失函数 步骤2:构建教师-学生模型架构 步…

作者头像 李华
网站建设 2026/5/5 15:34:07

SGMICRO圣邦微 SGM8933YN6G/TR SOT23-6 运算放大器

特性低失调电压&#xff1a;0.9mV&#xff08;最大值&#xff09;低输入电压噪声&#xff1a;30nV/√Hz低失真增益带宽积&#xff1a;1.5MHz 压摆率&#xff1a;0.8/μs轨到轨输出电源电压范围&#xff1a;1.8V 至 5.5V低电源电流&#xff1a;80μA/放大器&#xff08;典型值&a…

作者头像 李华