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

小白python入门 - 7. Python分支与循环结构实战:从基础语法到代码逻辑解析

程序的灵魂在于逻辑控制,而分支与循环正是实现这一控制的核心结构。本文将系统解析 Python 中的 ifforwhile 等控制语句,通过实例详解其语法与应用场景,并提供可复用的代码模板。

一、分支结构:条件判断的艺术

分支结构通过 ifelifelse 关键字实现多路径逻辑判断,决定程序执行的不同分支。

示例1:学生成绩等级判断

功能:根据输入的分数(0~100),输出对应的等级(A/B/C/D/F)。

"""
学生成绩分级系统
Version: 1.0
Author: lennon 
"""
score = int(input("请输入成绩(0-100):"))if score >= 90:grade = 'A'
elif 80 <= score < 90:grade = 'B' 
elif 70 <= score < 80: grade = 'C'
elif 60 <= score < 70: grade = 'D'
else: grade = 'F'print(f"成绩:{score},等级:{grade}") 

解析:

  • 通过 if-elif-else 链式判断,覆盖所有可能分数区间。
  • elif 条件需按从高到低排列,避免逻辑漏洞(如 89 分误判为 A 级)。
  • input() 函数获取用户输入,int() 强制转换为整数类型。

二、循环结构:重复任务的自动化

1. for 循环:遍历可迭代对象

适用于已知循环次数或遍历序列(列表、字符串等)的场景。

示例2:计算列表元素总和

"""
列表求和工具
Version: 1.0
Author: lennon 
"""
numbers = [15, 20, 35, 40, 50] 
total = 0 for num in numbers:total += numprint(f"总和:{total}")  # 输出 160 

解析:

  • for 循环直接遍历列表 numbers,每次迭代取出一个元素赋值给 num
  • total += num 累加所有元素,最终输出总和。

示例3:字符串字符倒序输出

""" 
字符串逆序输出 
Version: 1.0 
Author: lennon
""" 
text = "Python"
reversed_text = ""for char in text[::-1]:  # 使用切片[::-1]实现逆序遍历 reversed_text += char print(reversed_text)  # 输出 "nohtyP"

解析:

  • text[::-1] 利用切片特性生成逆序序列。
  • reversed_text 通过字符串拼接实现逆序存储。

2. while 循环:条件持续满足时执行

适合循环次数不确定或依赖条件判断的场景。

示例4:阶乘计算

"""
阶乘计算器 
Version: 1.0 
Author: lennon
""" 
n = int(input("请输入整数n:"))
result = 1 
counter = 1 while counter <= n:result *= counter counter += 1 print(f"{n}! = {result}")

解析:

  • 初始值 counter=1,每次循环乘以当前值并递增计数器。
  • 循环条件 counter <= n 确保计算到 n 为止。

示例5:猜数字游戏(带退出机制)

"""
数字猜谜游戏
Version: 1.0
Author: lennon 
"""
import random 
target = random.randint(1, 100)
guess = 0print("猜数字游戏:输入0可退出")while guess != target:guess = int(input("请输入1-100的数字:")) if guess == 0:print("游戏结束!")break  # 强制退出循环 elif guess < target:print("太小了!")elif guess > target: print("太大了!")
else: print(f"恭喜!{target} 是正确答案!")

解析:

  • break 语句用于立即终止循环,实现用户主动退出。
  • while-else 结构:当循环条件自然不满足(非 break 终止)时,执行 else 块。

三、分支与循环的嵌套:复杂逻辑的构建

示例6:九九乘法表生成

"""
九九乘法表 
Version: 1.0
Author: lennon
"""
for i in range(1, 10):  # 控制行数 for j in range(1, i+1):  # 控制每行的列数 print(f"{j}×{i}={i*j}", end="\t")print()  # 换行

解析:

  • 外层 for 确定行数(1~9)。
  • 内层 for 输出每行的表达式(如第3行输出 1×3=33×3=9)。
  • end="\t" 避免每项换行,print() 强制换行分隔行。

四、关键技巧与注意事项

场景解决方案
避免无限循环确保 while 条件最终会变为 False,或在适当位置加入 break
循环中修改循环变量for 循环中避免修改遍历对象,否则可能导致不可预测的结果。
多条件分支优化使用 if-elif 链替代多重 if,减少重复条件判断。

五、总结

分支与循环是程序逻辑的“骨架”,通过条件判断和重复执行能力,可实现从简单计算到复杂算法的构建。实际开发中,需注意循环终止条件的合理性,以及分支逻辑的清晰分层。掌握这些结构后,读者可尝试结合变量与函数,开发更复杂的程序(如自动化脚本、数据统计工具等)。

http://www.dtcms.com/a/528449.html

相关文章:

  • Chrony服务器同步时间服务器实验
  • 万互网站建站网站建设怎么提需求
  • 国产 做 视频网站陕西建筑培训网
  • [人工智能-大模型-69]:模型层技术 - 计算机处理问题的几大分支:数值型性问题、非数值型问题?
  • 0. Qt 安装及源码及报错
  • jQuery 事件方法详解
  • 基于Python大数据的热门游戏推荐系统
  • 网站如何做关健词收录网站应该如何推广
  • 网站应该如何进行优化微信企业网站 源码下载
  • LlamaFactory的docker-compose安装
  • RK3568笔记102:基于LVGL8的车载娱乐小平板设计
  • 技术随笔:Node.js ESM 中巧用 `-r dotenv/config` 解决环境变量异步加载问题
  • 网站做端口是什么有没有可以免费做试卷的网站_最好可以学会...
  • 游戏人物设计 简单思路 那任务简单说是显示的 完成任务是每个条件脚本自己判断 完成后发给任务脚本信息
  • 利用消息队列(MQ)设计:解耦与异步削峰的艺术
  • 自由学习记录(111)
  • ESP32使用笔记(基于ESP-IDF):小智AI的ESP32项目架构与启动流程全面解析
  • 网站建设 软文网站创作思路
  • 未来之窗昭和仙君(三十七)抽奖随机算法修仙体——东方仙盟筑基期
  • HCIP---作业
  • 海天建设集团公司网站vi应用设计
  • Mybatis10-xml文件与mapper文件的目录位置说明
  • 安全的网站网站开发要
  • 面向模块的综合技术之综合策略优化(六)
  • Mem0:构建具有可扩展长期记忆的生产级AI代理 - 论文学习总结1
  • 【三相异步电动机判断好坏】
  • 整体设计 全面梳理复盘 之6 整体设计表格体系与执行逻辑迭代
  • SpringBoot集成Elasticsearch | Spring官方场景启动器(Spring Data Elasticsearch)方式
  • 【计挑赛】程序设计类真题(C++)
  • HTML HTML5基础(1)