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

Python条件语句与循环结构深度解析

一、条件语句全面讲解

1. 基本条件结构

核心关键字:
  • if:主条件判断

  • elif:附加条件判断(可多个)

  • else:默认情况(可选)

语法结构

if 条件1:# 条件1为True时执行
elif 条件2:# 条件2为True时执行
else:# 其他情况执行
比较运算符:
运算符描述示例数学符号
==等于5 == 5 → True=
!=不等于3 != 2 → True
>大于10 > 7 → True>
<小于4 < 6 → True<
>=大于等于8 >= 8 → True
<=小于等于5 <= 5.0 → True
案例1:成绩评级系统
score = 88if score >= 90:grade = "A"remark = "优秀"
elif score >= 80:  # 80-89grade = "B"remark = "良好"
elif score >= 70:  # 70-79grade = "C" remark = "中等"
elif score >= 60:  # 60-69grade = "D"remark = "及格"
else:              # <60grade = "F"remark = "不及格"print(f"成绩等级:{grade},评语:{remark}")

2. 复杂条件组合

逻辑运算符:
  • and:与(两个条件都为True)

  • or:或(至少一个条件为True)

  • not:非(取反)

案例2:登录验证

username = "admin"
password = "123456"
input_user = input("用户名:")
input_pwd = input("密码:")if input_user == username and input_pwd == password:print("登录成功!")
elif input_user == username or input_pwd == password:print("用户名或密码错误")
else:print("认证失败")
运算符优先级:
  1. () 括号

  2. ** 指数

  3. * / // % 乘除

  4. + - 加减

  5. == != > < >= <= 比较

  6. not 逻辑非

  7. and 逻辑与

  8. or 逻辑或

案例3:闰年判断

year = 2024# 能被4整除但不能被100整除,或者能被400整除
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:print(f"{year}年是闰年")
else:print(f"{year}年不是闰年")

3. 特殊条件表达式

三元运算符:
# 传统写法
if age >= 18:status = "成年"
else:status = "未成年"# 三元运算符写法
status = "成年" if age >= 18 else "未成年"

案例4:数字奇偶判断

num = 7
result = "奇数" if num % 2 != 0 else "偶数"
print(f"{num}是{result}")

二、循环结构深入解析

1. while循环

基本结构:
while 条件:# 循环体if 退出条件:break

案例5:密码重试机制

MAX_ATTEMPTS = 3
attempts = 0
correct_pin = "1234"while attempts < MAX_ATTEMPTS:user_input = input("请输入4位PIN码:")if user_input == correct_pin:print("解锁成功!")breakelse:attempts += 1print(f"密码错误,剩余尝试次数:{MAX_ATTEMPTS - attempts}")
else:  # 循环正常结束执行(非break退出)print("账户已锁定,请稍后再试")
循环控制语句:
  • break:立即退出整个循环

  • continue:跳过当前迭代,进入下一次循环

  • pass:空操作,占位符

案例6:数字过滤

num = 0
while num < 10:num += 1if num % 2 == 0:continue  # 跳过偶数if num > 7:break     # 大于7时退出print(num)    # 输出:1 3 5 7

2. for循环与range函数

range函数详解:
range(start, stop, step)
# start:起始值(默认为0)
# stop:结束值(不包含)
# step:步长(默认为1)

案例7:数字序列生成

# 生成0-4
print(list(range(5)))      # [0, 1, 2, 3, 4]# 生成2-8,步长2
print(list(range(2, 9, 2))) # [2, 4, 6, 8]# 反向生成
print(list(range(5, 0, -1))) # [5, 4, 3, 2, 1]
for循环应用:

案例8:乘法表

for i in range(1, 10):      # 外层循环1-9for j in range(1, i+1): # 内层循环1-iprint(f"{j}x{i}={i*j}", end="\t")print()  # 换行# 输出:
# 1x1=1
# 1x2=2    2x2=4
# 1x3=3    2x3=6    3x3=9
# ...

3. 猜数字游戏优化版

import randomdef guess_number():target = random.randint(1, 100)attempts = 0max_attempts = 7print("猜数字游戏(1-100),你有7次机会")while attempts < max_attempts:try:guess = int(input(f"第{attempts+1}次猜测:"))except ValueError:print("请输入有效数字!")continueif guess == target:print(f"恭喜!你在{attempts+1}次内猜中了数字{target}")returnelif guess < target:print("猜小了")else:print("猜大了")attempts += 1remaining = max_attempts - attemptsif remaining > 0:print(f"剩余机会:{remaining}")print(f"游戏结束,正确答案是:{target}")# 启动游戏
guess_number()

三、高级循环技巧

1. 循环中的else子句

当循环正常结束(非break退出)时执行

案例9:素数判断

num = 13
for i in range(2, num):if num % i == 0:print(f"{num}不是素数")break
else:  # 循环完整执行才会进入print(f"{num}是素数")

2. enumerate函数

同时获取索引和值

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):print(f"{index}. {fruit}")# 输出:
# 1. apple
# 2. banana
# 3. cherry

3. zip函数

并行迭代多个序列

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]for name, score in zip(names, scores):print(f"{name}: {score}分")

四、实战项目:简易计算器

while True:print("\n简易计算器")print("1. 加法")print("2. 减法") print("3. 退出")choice = input("请选择操作(1/2/3): ")if choice == "3":print("感谢使用,再见!")breakif choice not in ("1", "2"):print("无效输入,请重新选择")continuetry:num1 = float(input("输入第一个数字: "))num2 = float(input("输入第二个数字: "))except ValueError:print("请输入有效数字!")continueif choice == "1":result = num1 + num2print(f"结果: {num1} + {num2} = {result}")elif choice == "2":result = num1 - num2print(f"结果: {num1} - {num2} = {result}")

五、学习要点总结

  1. 条件语句要点

    • 每个条件分支必须正确缩进

    • elif可以有多个,else最多一个

    • 复杂条件使用括号明确优先级

  2. 循环结构要点

    • 避免无限循环(确保有退出条件)

    • 大数据集优先考虑for循环

    • 需要索引时使用enumerate

  3. 最佳实践

    • 循环体内避免过多嵌套

    • 使用有意义的循环变量名

    • 复杂逻辑可拆分为函数

通过充分练习这些控制结构,你将能够编写更加灵活和强大的Python程序。建议每天至少完成3个不同类型的条件/循环练习题来巩固知识。

http://www.xdnf.cn/news/13165.html

相关文章:

  • 【51单片机】外挂DAC和ADC芯片的使用
  • 封装技术生命周期 从CDIP到CSP到SiP先进封装
  • AI书签管理工具开发全记录(十八):书签导入导出
  • find查找指定文件
  • 鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(三)
  • Python Ovito统计金刚石结构数量
  • 防爆对讲机与非防爆对讲机的本质区别?
  • 玩转 Skia 的颜色
  • deepbayes lecture1: 贝叶斯框架简介
  • 本周股指想法
  • FreeRTOS学习02_任务管理
  • 关于新闻生产中技术系统弹性和灵活性的研究
  • Spring Boot 多模块项目最佳实践:结构设计与依赖管理
  • LangGraph基础知识(Graph-GraphState)
  • 47 通道注意力 热力图
  • 66、RFID是什么?
  • 深入理解Spring Boot中的Filter机制:原理、注册与实战应用
  • 地球科学方向(Geoscience and Remote Sensing),1天见刊,当月可检索!
  • 【AI学习】二、 嵌入模型(Embedding Models)和 向量数据库(Vector Databases)
  • VLLM : RuntimeError: NCCL error: invalid usage
  • 底层文件传输方式和传输机制
  • 高中为何要引入集合
  • Spring是如何实现无代理对象的循环依赖
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建网站智能客服
  • SSH协议与应用
  • Python如何给视频添加音频和字幕
  • Vue3setup的参数说明
  • AI电销机器人智能的发展趋势是什么?
  • 海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
  • 使用ONNX模型实现M-LSD算法