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())来做选择决策,进一步使用条件和循环。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1188514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot高校学习讲座预约管理系统设计实现

高校学习讲座预约管理系统的背景高校作为知识传播和学术交流的重要场所&#xff0c;频繁举办各类学术讲座、专家报告等活动。传统讲座管理多依赖人工登记、纸质签到或简单电子表格&#xff0c;存在信息滞后、资源分配不均、学生参与度低等问题。随着高校规模扩大和信息化需求提…

hive 小文件优化

想了解 Hive 小文件的优化方案,小文件会给 Hive 带来诸多负面影响(如占用过多 NameNode 内存、降低查询执行效率、增加任务调度开销等),优化需从事前预防、事后治理、配置优化三个核心维度入手,以下是全面且可落地…

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

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

springboot攻防靶场实验室平台的设计与实现

背景与意义 SpringBoot攻防靶场实验室平台的设计与实现&#xff0c;源于网络安全领域对实战化训练环境的迫切需求。随着网络攻击手段的多样化和复杂化&#xff0c;传统的理论教学已无法满足安全人才培养的需求&#xff0c;亟需一个高度仿真、可交互的实践平台。 技术背景 Spr…

如何轻松将 Python 英文版切换至中文界面

Python 的“英文版”切换到中文界面&#xff0c;主要取决于你指的到底是哪个部分&#xff1a; Python 解释器 / 命令行&#xff1a;本身没有界面语言概念&#xff08;一直是英文提示&#xff09;&#xff0c;但错误信息、帮助文档可以看中文版。IDLE&#xff08;Python 自带的…

元宇宙:数字文明的下一站

一、元宇宙的起源与演进&#xff1a;从科幻概念到科技浪潮元宇宙的概念最早可追溯至1992年——美国作家尼尔斯蒂芬森在科幻小说《雪崩》中首次提出“Metaverse”一词&#xff0c;描绘了一个与现实世界平行的虚拟空间&#xff0c;人们通过数字化身在其中生活、交互。这一设想随后…

物联网 (IoT) 助力您提升业务的 9 种方式

物联网&#xff08;IoT&#xff09;本质上是一个由互联设备构成的网络&#xff0c;这些设备能够跨网络收集并传输数据。 传感器、通信设备与身份识别芯片持续与云端及数据分析引擎交互&#xff0c;推动企业迈入自动化新时代。物联网能够为各规模企业提供实时反馈&#xff0c;助…

Delphi 与 VS 调试快捷键精准对应表

梳理Delphi和Visual Studio中调试相关快捷键的对应关系,这样在从Delphi切换到VS调试代码时,能快速匹配熟悉的操作习惯,不用反复记忆新的快捷键组合。下面我会按调试操作的核心场景分类,清晰列出两者的快捷键对应关…

硅基计划4.0 算法 递归回溯 - 实践

硅基计划4.0 算法 递归&回溯 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

如何为制造业选geo优化公司?2026年geo优化公司全面评测与推荐,直击精准询盘痛点 - 品牌推荐

基于《2026年中国企业AI搜索生态应用趋势报告》核心洞察、行业权威技术认证及第三方实测数据,甄选出2026年值得合作的GEO优化服务商榜单,覆盖高端制造、专业服务、知识内容、工业B2B等多种行业需求,逐一解答“哪家G…

钱包技术:从私钥保管到Web3入口的演进之路

在区块链世界中&#xff0c;钱包不仅仅是存储数字货币的地方&#xff0c;更是用户与整个去中心化网络交互的入口。它经历了从简单的密钥管理工具到多功能数字资产控制中心的演变&#xff0c;成为Web3生态的核心基础设施。一、钱包技术的发展历程早期单链时代&#xff08;2009-2…

EI会议推荐!2026年机器视觉、检测与三维成像技术国际学术会议(MVDIT 2026)

会议官网&#xff1a;https://www.yanfajia.com/action/p/QHT2TU33 会议日期&#xff1a; 2026年5月15-17日 会议地点&#xff1a;中国 南昌 接受或拒绝通知日期&#xff1a;提交后7个工作日 检索类型&#xff1a;EI Compendex、Scopus 会议秘书&#xff1a;Julian 联系电…

数据安全有保障的BI产品?观远数据筑牢企业核心资产防护墙 - 速递信息

在数据驱动的商业时代,数据安全已成为企业数字化转型的生命线。BI 产品作为整合、分析、呈现企业核心数据的关键工具,其数据安全保障能力直接决定企业数据资产是否面临泄露、篡改、丢失等风险。对于金融、央国企、零…

单北斗GNSS变形监测系统是什么?主要应用于水库和桥梁形变监测吗?

单北斗GNSS变形监测系统作为一种高效的监测工具&#xff0c;广泛应用于水库和桥梁等基础设施的形变监测。它利用北斗卫星信号&#xff0c;实时获取结构的微小变形数据&#xff0c;为工程安全提供可靠依据。在这些应用中&#xff0c;系统能够自动化记录和分析监测数据&#xff0…

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

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

2026年GEO优化公司推荐:针对知识密集型行业痛点排名,涵盖法律与教育多场景应用 - 品牌推荐

由中国领先的行业监测与权威平台《广告主评论》主办、中经总网中经在线(全称中国经济报道)、世界品牌研究院(中国)集团有限公司协办支持的“全球 GEO 厂商评测”,从 GEO 理论奠基、技术实践、创始人背景、技术资质…

springboot高等数学课程教辅资源系统的设计与实现

高等数学课程教辅资源系统的背景高等数学是理工科专业的基础课程&#xff0c;内容涵盖微积分、线性代数、概率统计等&#xff0c;理论性强且抽象。传统教学模式下&#xff0c;学生常面临知识点理解困难、习题资源分散、个性化学习支持不足等问题。SpringBoot作为轻量级Java框架…

EI往届检索稳定JPCS出版| 往届检索可查 | 第四届机械工程与先进制造智能化技术研讨会(MEAMIT 2026)

高录用&#xff5c;EI 稳定检索&#xff5c; 学生投稿优惠 在线征集&#xff1a;机械工程、先进制造技术、智能制造系统与自动化 机器人及协作系统、智能检测与质量控制、先进加工与增材制造等相关主题稿件 欢迎团体投稿/参会&#xff0c;享专属优惠&#xff01;详情请咨询大…

springboot高校党员信息管理系统

高校党员信息管理系统的背景高校党员信息管理系统是针对高校党组织管理需求开发的数字化平台。高校党员群体具有流动性强、信息更新频繁的特点&#xff0c;传统纸质档案或分散的电子表格管理方式效率低下&#xff0c;难以满足党员发展、组织关系转接、党费收缴等工作的精准化需…

命名管道和匿名管道

命名管道 命名管道(Named Pipe)是一种特殊类型的文件,它以文件系统路径为标识,允许任意两个进程(无论是否有亲缘关系)通过读写该路径进行数据交换。其本质是内核维护的一个内存缓冲区,遵循“先进先出”(FIFO)…