Python 入门第二天:条件判断与循环语句
学习完变量、字符串、输入输出和类型转换后我们已经可以编写一些简单的程序了。不过这些程序通常只能按照固定顺序从上到下运行。现实中的程序需要根据不同情况执行不同操作。例如判断用户是否成年、根据身高决定是否购票或者让程序重复输出某段内容。要实现这些功能就需要学习条件判断和循环语句。本文将介绍布尔值、比较运算符、if判断、while循环、for循环以及range()函数。一、布尔值与比较运算符在 Python 中表示“成立”和“不成立”的数据类型叫作布尔类型。布尔类型只有两个值True False注意True和False的首字母必须大写。我们可以直接输出布尔值print(True) print(False)但在实际程序中布尔值通常来自条件判断。例如print(10 5) print(10 5)运行结果True FalsePython 常用的比较运算符如下运算符含义示例大于10 5小于10 5大于等于10 10小于等于5 8等于10 10!不等于10 ! 5例如age 18 print(age 18) print(age 20) print(age ! 16)这里要特别区分和age 18 # 把18赋值给变量age age 18 # 判断age是否等于18单个等号表示赋值两个等号才表示比较。二、使用 if 语句进行判断if语句用于判断一个条件。当条件成立时执行对应的代码条件不成立时则跳过这部分代码。基本格式如下if 条件: 条件成立时执行的代码例如判断一个人是否成年age int(input(请输入你的年龄)) if age 18: print(你已经成年了) print(请为自己的行为负责) print(程序结束)当输入的年龄大于或等于 18 时条件结果为True两条缩进的语句都会执行。如果年龄小于 18这两条语句就会被跳过。编写if语句时要注意两个重要规则判断条件后面必须有英文冒号:。属于if的代码需要缩进通常使用四个空格。正确写法if age 18: print(你已经成年)错误写法if age 18 print(你已经成年)Python 使用缩进表示代码之间的层级关系所以缩进不仅是为了美观也是语法的一部分。三、if-else处理两种情况只有if时我们只能规定“条件成立怎么办”。如果希望条件不成立时也执行一些代码就可以使用else。基本格式如下if 条件: 条件成立时执行 else: 条件不成立时执行例如判断是否需要购买儿童票height float(input(请输入你的身高单位为米)) if height 1.2: print(需要购买全价票) else: print(可以享受儿童票优惠)else后面没有判断条件因为它表示“以上条件不成立时的其他情况”。在同一次判断中if和else只有一个分支会执行不会同时执行。四、if-elif-else处理多种情况程序有时需要判断三种甚至更多情况。例如可以根据成绩划分等级score int(input(请输入考试成绩)) if score 90: print(成绩等级优秀) elif score 80: print(成绩等级良好) elif score 60: print(成绩等级及格) else: print(成绩等级不及格)elif是“否则如果”的意思可以出现多个else没有条件并且只能放在最后。Python 会按照从上到下的顺序判断如果score 90成立执行第一个分支否则继续判断score 80仍不成立再判断score 60所有条件都不成立最后执行else。一旦某个条件成立后面的分支就不会再判断。因此条件的顺序非常重要。例如下面的写法就有问题if score 60: print(及格) elif score 90: print(优秀)当成绩为 95 时第一个条件已经成立程序只会输出“及格”。正确做法是把范围更严格的条件写在前面。五、判断语句的嵌套在一个if语句内部还可以继续编写另一个if这种结构叫作判断嵌套。例如某景区规定成年人需要购票但 VIP 用户可以免费age int(input(请输入年龄)) is_vip input(是否为VIP用户请输入yes或no) if age 18: print(你属于成年游客) if is_vip yes: print(VIP用户可以免费入场) else: print(请购买成人票) else: print(请按照儿童票规则入场)外层if先判断年龄只有年龄大于或等于 18 时才会继续判断是否为 VIP。嵌套结构需要特别注意缩进if 外层条件: if 内层条件: print(内层条件成立)初学时不建议嵌套太多层。层级过多会让程序难以阅读也容易出现缩进错误。六、while 循环如果希望一段代码重复执行可以使用循环。while循环会在条件为True时不断执行循环体当条件变成False时结束循环。基本格式如下while 条件: 重复执行的代码例如输出 1 到 5i 1 while i 5: print(i) i 1程序的执行过程是判断i 5是否成立条件成立输出i执行i 1让变量增加 1再次判断条件当i变成 6 时条件为False循环结束。运行结果1 2 3 4 5在使用while时一定要让循环条件有机会变成False。如果忘记修改变量就可能产生死循环i 1 while i 5: print(i)因为i始终是 1所以条件一直成立程序会不停输出。七、while 循环的嵌套循环内部也可以继续使用循环这叫作循环嵌套。外层循环通常控制整体执行次数内层循环控制每一轮中的具体次数。例如可以使用两个while循环打印九九乘法表row 1 while row 9: column 1 while column row: print(f{column}×{row}{column * row}, end\t) column 1 print() row 1这里外层循环控制行数内层循环控制每一行的算式数量column row让每一行只输出到当前数字end\t表示输出后不立即换行而是使用制表符分隔内层循环结束后单独使用print()完成换行。嵌套循环也要小心死循环。外层和内层用于计数的变量都应该在合适的位置发生变化。八、for 循环while循环适合根据条件重复执行而for循环更适合逐个处理一组数据。基本格式如下for 临时变量 in 数据: 循环执行的代码例如遍历一个字符串for letter in Python: print(letter)运行结果P y t h o n每次循环时字符串中的一个字符都会依次赋值给变量letter。我们还可以统计某个字符出现的次数text itheima is a brand of itcast count 0 for letter in text: if letter a: count 1 print(f字母a一共出现了{count}次)程序会逐个检查字符串中的字符。如果当前字符是a就让计数器count增加 1。九、range() 生成数字序列如果希望for循环执行指定次数可以使用range()。1. range(stop)for i in range(5): print(i)运行结果0 1 2 3 4range(5)从 0 开始到 5 之前结束不包含 5。2. range(start, stop)for i in range(1, 6): print(i)运行结果是 1 到 5。3. range(start, stop, step)for i in range(1, 10, 2): print(i)运行结果1 3 5 7 9第三个参数表示步长也就是每次增加多少。range()遵循“左闭右开”原则包含开始值但不包含结束值。记住这一点可以避免很多边界错误。我们也可以使用负数步长实现倒序for i in range(5, 0, -1): print(i) print(开始)十、循环中的临时变量在下面的循环中i是临时变量for i in range(5): print(i)它主要用于保存每一次循环取得的值。在 Python 中循环结束后通常仍然可以访问ifor i in range(5): print(i) print(i)最后一行会输出4。不过不建议在循环外依赖这个临时变量因为它本来是为了循环过程服务的。更清晰的写法是使用专门的变量保存最终结果。在嵌套循环中不同层级最好使用不同变量for row in range(1, 4): for column in range(1, 4): print(row, column)这样比所有循环都使用i更容易理解。十一、综合练习三次机会猜数字下面用条件判断和循环完成一个猜数字小游戏import random answer random.randint(1, 10) for chance in range(1, 4): guess int(input(f第{chance}次机会请输入1到10之间的数字)) if guess answer: print(恭喜你猜对了) break elif guess answer: print(猜大了) else: print(猜小了) else: print(f三次机会已经用完正确答案是{answer})代码中的random.randint(1, 10)会随机生成一个 1 到 10 之间的整数。break表示立即结束当前循环。如果三次都没有猜对循环正常结束后就会执行最后的else。这个案例综合使用了键盘输入整数类型转换for循环range()if-elif-else比较运算符f-string。十二、总结通过本文我们学习了 Python 程序流程控制中最重要的两部分判断和循环。布尔值True与False用于表示条件是否成立比较运算符可以比较两个数据if、elif和else能让程序根据不同情况执行不同代码。当某段代码需要重复执行时可以使用while或for。while更适合根据条件进行循环for更适合逐个处理字符串、数字序列等数据。配合range()我们还可以准确控制循环次数。学习这些知识后可以尝试独立完成几个小练习输入年龄判断用户是否成年输入身高判断是否需要购买门票根据消费金额判断用户是否可以享受优惠使用循环计算 1 到 100 的和输出完整的九九乘法表制作一个有三次机会的猜数字游戏。条件判断让程序拥有“选择能力”循环语句让程序拥有“重复工作的能力”。掌握这两部分后我们就能够编写出更灵活、更接近真实应用的 Python 程序。

相关新闻

AXI总线协议详解:从通道分离到系统集成,掌握SoC/FPGA高效互连设计

AXI总线协议详解:从通道分离到系统集成,掌握SoC/FPGA高效互连设计

1. 从总线到协议:为什么我们需要AXI?在数字电路设计,尤其是SoC(片上系统)和FPGA开发领域,工程师们经常面临一个核心挑战:如何让芯片内部的各种功能模块高效、可靠地“对话”?无论是处…

2026/7/29 4:09:53 阅读更多 →
C语言数组内存原理与实战技巧

C语言数组内存原理与实战技巧

1. 数组是什么?从内存角度理解当你在C语言中写下int arr[5];这行代码时,计算机究竟在背后做了什么?让我们把镜头拉近到内存层面。想象你的内存就像一栋公寓楼,每个房间都有一个固定大小的空间(通常是4字节存放int类型数…

2026/7/29 4:09:53 阅读更多 →
Azkaban SSL/TLS证书验证失败:certificate_unknown错误深度解析与实战解决方案

Azkaban SSL/TLS证书验证失败:certificate_unknown错误深度解析与实战解决方案

1. 项目概述:当Azkaban遇上SSL/TLS证书验证如果你正在使用Azkaban这个流行的开源工作流调度系统,并且尝试让它通过HTTPS与外部服务(比如Hadoop集群的WebHDFS、Spark History Server,或者一个内部的REST API)进行安全通…

2026/7/29 4:09:53 阅读更多 →

最新新闻

高速DDR原理图设计核心要点:从电源网络到信号拓扑的实战指南

高速DDR原理图设计核心要点:从电源网络到信号拓扑的实战指南

1. 项目概述:从原理图开始,构建高速DDR系统的基石当一块高速PCB板卡在调试时出现DDR数据读写不稳定,甚至无法启动时,很多工程师的第一反应往往是去检查PCB的布线——等长、阻抗、串扰,这些确实是高速设计的命门。但在我…

2026/7/29 4:19:57 阅读更多 →
基于Qt与C++的数独游戏开发:从算法到GUI的完整项目实践

基于Qt与C++的数独游戏开发:从算法到GUI的完整项目实践

1. 项目概述:为什么选择Qt与数独作为C大作业?如果你是一名计算机专业的学生,或者正在自学C,那么“做一个大作业”这个任务大概率会找上你。选什么题目,往往比怎么做更让人头疼。太简单了,显得没水平&#x…

2026/7/29 4:19:57 阅读更多 →
C/C++高精度π计算:从高斯-勒让德算法到工程实现

C/C++高精度π计算:从高斯-勒让德算法到工程实现

1. 项目概述:为什么我们要自己动手算π?在编程学习的道路上,很多朋友都是从“Hello World”开始,然后接触各种算法和数据结构。但当你觉得链表、排序这些基础内容已经掌握得差不多时,一个能真正检验你对语言特性、算法…

2026/7/29 4:19:57 阅读更多 →
芯片丝印反查全攻略:从识别到实战的硬件工程师必备技能

芯片丝印反查全攻略:从识别到实战的硬件工程师必备技能

1. 芯片丝印反查:从“天书”到“说明书”的必备技能刚入行那会儿,从一堆废板子上拆下几个芯片,看着上面密密麻麻的字母和数字,感觉就像在看天书。型号?厂家?参数?一概不知。后来才知道&#xff…

2026/7/29 4:19:56 阅读更多 →
无人机从零组装调试全攻略:硬件连接、软件配置与常见故障排查

无人机从零组装调试全攻略:硬件连接、软件配置与常见故障排查

1. 聚会缘起与核心议题上周六,我们“四轴兴趣小组”的第三次线下聚会如期举行。这次聚会和之前两次纯理论探讨、方案选型不同,核心目标非常明确:把大家手里的零件,变成一台能飞起来的无人机。聚会地点选在了我那个堆满各种开发板、…

2026/7/29 4:19:56 阅读更多 →
FPGA与MATLAB/Simulink实战:代码案例如何打通从理论到工程落地的鸿沟

FPGA与MATLAB/Simulink实战:代码案例如何打通从理论到工程落地的鸿沟

1. 从“赠品”到“核心资产”:为什么我的代码案例比教程本身更值钱?如果你在FPGA、MATLAB或Simulink的学习路上摸爬滚打过一阵子,肯定见过各种打包销售的教程。标题里“订阅1~4系列,赠送1~2套代码案例”这种说法,乍一看…

2026/7/29 4:18:56 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻