Python 程序结构

简介: 本文系统讲解Python三大程序结构:顺序结构(代码自上而下执行)、选择结构(if/elif/else实现条件分支,含嵌套与三元运算)和循环结构(for遍历、while条件循环,含break/continue控制及嵌套应用),辅以丰富示例与练习,夯实编程逻辑基础。(239字)

Python 程序结构

程序结构概述

程序结构描述了程序中代码的执行过程。按照不同的执行过程,可以将程序结构划分为三大类型:

  • 顺序结构:代码按顺序逐行执行
  • 选择结构:根据条件选择执行不同的代码块
  • 循环结构:重复执行某段代码

顺序结构

在 Python 中,顺序结构是程序执行的基本流程,即代码按照从上到下的顺序依次执行,没有分支、循环或跳转。这是最简单也是最基础的程序结构。

# 接收用户输入
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))

# 数据处理
next_year_age = age + 1

# 输出结果
print(f"你好,{name}!")
print(f"今年你{age}岁,明年你将{next_year_age}岁。")

顺序结构特点:

  1. 代码一行一行依次执行,不会跳过任何一行
  2. 前一条语句执行完毕后,才会执行下一条语句
  3. 是所有复杂程序结构(分支、循环等)的基础

选择结构

选择结构是编程中的基本控制结构之一,它允许程序根据条件判断决定执行哪部分代码。在 Python 中,主要通过 if、elif 和 else 关键字实现。

基本语法

单分支:if 语句

# 基本格式
if 条件:
    # 条件为真时执行的代码

# 示例
age = 18
if age >= 18:
    print("您已成年")

案例1:判断数字是否为正数

num = float(input("请输入一个数字:"))
if num > 0:
    print("这是一个正数")

双分支:if-else 语句

if 条件表达式:
    # 条件为真时执行的代码块
else:
    # 条件为假时执行的代码块

案例1:判断数字奇偶性

num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print(f"{num} 是偶数")
else:
    print(f"{num} 是奇数")

案例2:成绩及格判断

score = float(input("请输入成绩:"))
if score >= 60:
    print("恭喜,成绩及格!")
else:
    print("很遗憾,成绩不及格")

多条件判断:if-elif-else

# 基本格式
if 条件1:
    # 条件1为真时执行
elif 条件2:
    # 条件2为真时执行
else:
    # 所有条件都不满足时执行

# 示例:成绩评级
score = 85

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

嵌套条件语句

# 示例:判断一个数是否为偶数且大于10
num = 14

if num % 2 == 0:  # 判断是否为偶数
    if num > 10:   # 嵌套判断是否大于10
        print("这个数是偶数且大于10")
    else:
        print("这个数是偶数但不大于10")
else:
    print("这个数是奇数")

三元运算符

# 基本格式
值1 if 条件 else 值2

# 示例
age = 20
status = "成年" if age >= 18 else "未成年"
print(status)  # 输出:成年

选择结构练习题

练习1:三角形类型判断

编写一个程序,输入三角形的三条边长,判断:

  1. 是否能构成三角形(任意两边之和大于第三边)
  2. 如果能构成三角形,进一步判断是等边、等腰还是一般三角形
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))

# 判断是否能构成三角形
if a + b > c and a + c > b and b + c > a:
    print("可以构成三角形")

    # 判断三角形类型
    if a == b == c:
        print("这是等边三角形")
    elif a == b or a == c or b == c:
        print("这是等腰三角形")
    else:
        print("这是一般三角形")
else:
    print("不能构成三角形")

练习2:快递运费计算

'''
题目:输入快递重量(kg)和是否为同城(1 = 同城,0 = 异地),计算运费:
同城:
  重量≤3kg → 运费 8 元
  重量 > 3kg → 超出部分每 kg 加 2 元(如 4kg=8+2=10 元)
异地:
  重量≤1kg → 运费 12 元
  1kg < 重量≤5kg → 运费 20 元
  重量 > 5kg → 超出部分每 kg 加 5 元(如 6kg=20+5=25 元)
打印最终运费。
'''

综合练习:ATM 机模拟程序

设计一个简单的 ATM 机模拟程序,实现以下功能:

  1. 初始界面显示密码输入框(预设正确密码为 123456)

    • 密码输入错误 → 提示"密码错误,退出程序"
    • 密码输入正确 → 进入主菜单
  2. 主菜单提供 4 个选项:

    • 查询余额
    • 存款
    • 取款
    • 退出
  3. 各功能规则:

    • 查询余额:显示当前余额(初始余额为 1000 元)
    • 存款:输入存款金额(必须为正数),若金额合法则更新余额并显示;否则提示"存款金额无效"
    • 取款:输入取款金额(必须为正数且不超过当前余额),若金额合法则更新余额并显示;否则提示"取款金额无效"或"余额不足"
    • 退出:显示"感谢使用,再见!"并结束程序
# ATM 模拟程序
balance = 1000  # 初始余额
password = "123456"  # 预设密码

# 密码验证
input_password = input("请输入密码:")
if input_password != password:
    print("密码错误,退出程序")
else:
    while True:
        print("\n=== ATM 主菜单 ===")
        print("1. 查询余额")
        print("2. 存款")
        print("3. 取款")
        print("4. 退出")

        choice = input("请选择操作(1-4):")

        if choice == "1":
            print(f"当前余额:{balance}元")
        elif choice == "2":
            amount = float(input("请输入存款金额:"))
            if amount > 0:
                balance += amount
                print(f"存款成功!当前余额:{balance}元")
            else:
                print("存款金额无效")
        elif choice == "3":
            amount = float(input("请输入取款金额:"))
            if amount > 0:
                if amount <= balance:
                    balance -= amount
                    print(f"取款成功!当前余额:{balance}元")
                else:
                    print("余额不足")
            else:
                print("取款金额无效")
        elif choice == "4":
            print("感谢使用,再见!")
            break
        else:
            print("无效选择,请重新输入")

循环结构

循环结构是编程中的基本控制结构之一,它允许程序重复执行某段代码,直到满足特定条件为止。Python 提供了两种主要的循环结构:for 循环和 while 循环。

for 循环

for 循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象中的元素。

基本语法

for 变量 in 序列:
    # 循环体代码

range() 函数

range() 是 Python 中的一个内置函数,用于生成一个不可变的整数序列。它通常与 for 循环结合使用,用于控制循环的次数或遍历数字序列。

range() 函数的三种形式:

  1. range(stop) - 生成从 0 开始到 stop-1 的整数序列
for i in range(5):
    print(i)  # 输出: 0, 1, 2, 3, 4
  1. range(start, stop) - 生成从 start 开始到 stop-1 的整数序列
for i in range(2, 7):
    print(i)  # 输出: 2, 3, 4, 5, 6
  1. range(start, stop, step) - 生成从 start 开始到 stop-1 的整数序列,步长为 step
for i in range(1, 10, 2):
    print(i)  # 输出: 1, 3, 5, 7, 9

for i in range(10, 0, -1):
    print(i)  # 输出: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

案例演示

# 案例1:遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 案例2:遍历字符串
word = "Python"
for char in word:
    print(char)

# 案例3:使用range()函数
# 打印0到4
for i in range(5):
    print(i)

# 打印2到6
for i in range(2, 7):
    print(i)

# 打印1到10,步长为2
for i in range(1, 11, 2):
    print(i)

while 循环

while 循环在给定条件为真时重复执行代码块。

基本语法

while 条件:
    # 循环体代码

案例演示

# 案例1:计数器
count = 0
while count < 5:
    print(f"计数: {count}")
    count += 1  # 重要:不要忘记更新条件变量,否则会导致无限循环

# 案例2:用户输入验证
password = ""
while password != "secret":
    password = input("请输入密码: ")
print("密码正确!")

# 案例3:猜数字游戏
import random
number = random.randint(1, 10)
guess = 0
attempts = 0

while guess != number:
    guess = int(input("猜一个1到10之间的数字: "))
    attempts += 1
    if guess < number:
        print("猜小了!")
    elif guess > number:
        print("猜大了!")

print(f"恭喜!你在{attempts}次尝试后猜对了!")

循环控制语句

  • break:立即终止整个循环
  • continue:跳过当前迭代,继续下一次迭代

案例演示

# break示例:找到第一个能被7整除的数
for i in range(1, 100):
    if i % 7 == 0:
        print(f"找到第一个能被7整除的数: {i}")
        break

# continue示例:打印1-10中的奇数
for i in range(1, 11):
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i)

循环中的 else 子句

在 Python 中,循环可以有一个可选的 else 子句,它在循环正常结束(即不是通过 break 语句终止)时执行。

# for循环中的else
for i in range(5):
    print(i)
else:
    print("循环正常结束")

# while循环中的else
count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("循环正常结束")

# 与break结合使用
for i in range(10):
    if i == 5:
        print("遇到5,提前退出")
        break
    print(i)
else:
    print("循环正常结束")  # 这行不会执行,因为循环被break终止

嵌套循环

循环可以嵌套,即一个循环内部包含另一个循环。

# 打印矩形图案
rows = 4
cols = 6

for i in range(rows):
    for j in range(cols):
        print("*", end=" ")
    print()  # 换行

# 打印直角三角形
for i in range(1, 6):
    for j in range(i):
        print("*", end=" ")
    print()

# 打印九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()

循环结构练习题

练习1:计算1到100的和

total = 0
for i in range(1, 101):
    total += i
print(f"1到100的和是: {total}")

练习2:质数判断

num = int(input("请输入一个整数: "))
if num > 1:
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            print(f"{num}不是质数")
            break
    else:
        print(f"{num}是质数")
else:
    print(f"{num}不是质数")

练习3:打印等腰三角形

n = 5
for i in range(1, n+1):
    # 打印空格
    for j in range(n - i):
        print(" ", end="")
    # 打印星号
    for k in range(2 * i - 1):
        print("*", end="")
    print()

练习4:找出100以内的所有质数

print("100以内的质数有:")
for num in range(2, 101):
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            break
    else:
        print(num, end=" ")

总结

选择结构要点

  • 使用 if 进行条件判断
  • 使用 elif 处理多个条件
  • 使用 else 处理所有其他情况
  • 注意代码缩进(Python 使用缩进来标识代码块)
  • 可以使用嵌套条件处理复杂逻辑
  • 三元运算符适合简单的条件赋值

循环结构要点

  • 确保循环条件最终会变为 False,避免无限循环
  • 使用合适的循环结构(for 适合已知迭代次数,while 适合条件控制)
  • 合理使用 break 和 continue 优化循环逻辑
  • 注意代码缩进,Python 依靠缩进来确定代码块

不断练习这些程序结构,你会更加熟练地运用它们解决各种编程问题!

相关文章
|
云安全 安全 网络安全
|
7天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1997 1
|
14天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
2964 0
|
13天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2203 44
|
10天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1398 3
|
7天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
7天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1598 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
6天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!
|
6天前
|
安全 程序员 应用服务中间件
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
PHP 官方发布了紧急安全更新,一口气修复了两个严重漏洞。如果网站和服务器用了 PHP 应该怎么处理?漏洞的原理是什么?本文给你讲清楚
678 0