Python 流程控制完全指南:条件语句 + 循环语句 + 实战案例(零基础入门)


🔥草莓熊Lotso: 个人主页
❄️个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:


文章目录

  • 前言:
  • [一. 顺序语句:基础执行语句](#一. 顺序语句:基础执行语句)
  • [二. 条件语句:实现 "如果... 否则..." 逻辑](#二. 条件语句:实现 “如果… 否则…” 逻辑)
    • [2.1 核心语法格式](#2.1 核心语法格式)
    • [2.2 关键注意点](#2.2 关键注意点)
    • [2.3 空语句 pass:占位符作用](#2.3 空语句 pass:占位符作用)
    • [2.4 练习题](#2.4 练习题)
  • [三. 循环语句:实现 "重复执行" 逻辑](#三. 循环语句:实现 “重复执行” 逻辑)
    • [3.1 while 循环:条件满足就一直执行](#3.1 while 循环:条件满足就一直执行)
    • [3.2 for 循环:遍历可迭代对象](#3.2 for 循环:遍历可迭代对象)
    • [3.3 循环控制:break 和 continue](#3.3 循环控制:break 和 continue)
  • [四. 综合实战:人生重开模拟器(简化版)](#四. 综合实战:人生重开模拟器(简化版))
  • 结尾:

前言:

掌握变量、类型和运算符后,要写出有逻辑、能解决实际问题的 Python 程序,核心是掌握流程控制------ 也就是让代码 "按需执行""重复执行"。Python 的流程控制主要包括条件语句(if-elif-else)和循环语句(while/for),它们是实现复杂逻辑(如游戏、工具脚本)的基础。本文结合核心知识点,从条件语句的语法规则、循环语句的灵活用法,到空语句 pass 的作用,再到综合实战案例,一步步帮你吃透 Python 流程控制,让代码按照你的想法 "听话执行"。



一. 顺序语句:基础执行语句

默认情况下,Python的代码执行顺序是按照从上到下的顺序,依次执行的。

python 复制代码
# 默认情况下,Python 代码的执行顺序,是从上到下依次执行的.
# 这个顺序是不会乱的~
print("111")
print("222")
print("333")

执行结果一定为111,222,333而不会是其他的顺序。这种按照顺序执行的代码,我们称为顺序语句
注意:这个顺序是很关键的,编程是一件明确无歧义的事情,安装好任务的顺序,计算机才能够正确的进行执行。就好像人生的顺序,是上学,工作,结婚,生子。一旦这里的顺序乱了,就很麻烦。


二. 条件语句:实现 "如果... 否则..." 逻辑

条件语句(也叫分支语句)让程序根据不同条件执行不同代码块,核心关键字是ifelifelse

2.1 核心语法格式

Python 的条件语句有 3 种常见形式,语法简洁且强制缩进(4 个空格或 1 个 Tab)区分代码块,不用大括号{}

(1)单分支:if

满足条件才执行代码块,不满足则跳过:

python 复制代码
# 语法格式
"""
if 条件表达式:
    满足条件执行的代码1
    满足条件执行的代码2
"""

# 示例:输入年龄,判断是否成年
age = int(input("请输入你的年龄:"))
if age >= 18:
    print("你已成年,可以独立上网~")

(2)双分支:if-else

满足条件执行一个代码块,不满足执行另一个,非此即彼:

python 复制代码
# 语法格式
"""
if 条件表达式:
    满足条件执行的代码
else:
    不满足条件执行的代码
"""

# 示例:输入数字,判断奇偶
num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print(f"{num} 是偶数")
else:
    print(f"{num} 是奇数")

(3)多分支:if-elif-else

处理多个条件判断,只要有一个条件满足就执行对应代码块,后续不再判断:

python 复制代码
# 语法格式
"""
if 条件1:
    执行代码1
elif 条件2:
    执行代码2
elif 条件3:
    执行代码3
else:
    所有条件都不满足时执行的代码
"""
# 示例:输入成绩,判断等级
score = int(input("请输入你的成绩:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格,需要补考~")
python 复制代码
# 用户输入一个数字,如果输入 1 表示愿意认真学习,输入 2 表示想躺平摆烂.

choice  = input("如果输入 1 表示愿意认真学习,输入 2 表示想躺平摆烂: ")

# 注意这里比较的是 字符串 1, 不是 整数 1
if choice == "1":
    print('你能找到好工作')
elif choice == "2":
    print('你可能毕业就失业了')
else:
    # 除了 1 和 2 其他的都是非法情况
    print('你的输入有误!')

2.2 关键注意点

  • 条件表达式后必须加冒号:,否则语法报错;
  • 代码块必须缩进,缩进级别一致的代码属于同一代码块;
  • 多分支用elif(不是else if),else可选,放在最后;
  • 支持条件嵌套(if 里套 if),但嵌套层级不宜过多(建议不超过 3 层),否则可读性差:

实际示例

python 复制代码
# 如果 a == '1' 条件成立,就打印 'aaaa' 和 'bbbb'
# 如果条件不成立,那就只打印 'bbbb'
# a = input('请输入一个整数: ')
# if a == '1':
#     print("aaaa")
# print("bbbb")

# 如果 a == '1' 条件成立,就打印 'aaaa' 和 'bbbb'
# 如果条件不成立,那就什么都不打印
# a = input('请输入一个整数: ')
# if a == '1':
#     print("aaaa")
#     print("bbbb")

# 错误写法
#   File "D:\Gitee.code\python-fundamentals-\PythonProject\2025--11--19\code18.py", line 18
#     print("aaaa")
#     ^^^^^
# IndentationError: expected an indented block after 'if' statement on line 17
# a = input('请输入一个整数: ')
# if a == '1':
# print("aaaa")
#     print("bbbb")



a = input("Enter the First number: ")
b = input("Enter the Second number: ")

# 条件嵌套
if a == '1':
    if b == '2':
        print("aaa")
    print("bbb")
print("ccc")

2.3 空语句 pass:占位符作用

当条件语句中暂时没有要执行的代码时,用pass占位(保持语法完整),否则会报错:

python 复制代码
# 输入一个数字,如果数字为 1,则打印 hello

a = input("请输入一个数字: ")
if a == '1':
    # 啥都不做
    pass # 空语句
else:
    print('hello')

2.4 练习题

python 复制代码
# (1) 输入一个整数,判定是否是奇数
a = int(input("请输入一个整数: "))

if a % 2 == 0:
    print("偶数")
else:
    print("奇数")

# Python 中也像下面可以这样写,这里是负数也没影响,eg: -19 % 2 == 1
# C++/Java 不行,因为如果是负数,eg: -19 % 2 == -1(!=1)
# if a % 2 == 1:
#     print("奇数")
# else:
#     print("偶数")
python 复制代码
# (2) 输入一个整数,判定是正数还是负数
a = int(input("请输入一个整数: "))
if a > 0:
    print("正数")
elif a < 0:
    print("负数")
else:
    print("0")
python 复制代码
# (3) 判定年份是否是闰年
# 能被 4 整除,不能被 100 整除
# 能被 400 整除
year = int(input("请输入一个年份: "))

if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print("闰年")
else:
    print("平年")

# if year % 100 == 0:
#     # 世纪闰年的判定
#     if year % 400 == 0:
#         print("闰年")
#     else:
#         print("平年")
# else:
#     # 普通闰年的判定
#     if year % 4 == 0:
#         print("闰年")
#     else:
#         print("平年")

三. 循环语句:实现 "重复执行" 逻辑

循环语句让代码块重复执行,Python 支持while循环和for循环,各有适用场景。

3.1 while 循环:条件满足就一直执行

while循环适合 "不确定循环次数,但知道循环终止条件" 的场景,核心是 "先判断条件,再执行循环体"。

语法格式:

python 复制代码
"""
while 循环条件:
    循环体代码
    (可选)更新循环变量(避免死循环)
"""

经典示例:

  • 示例 1:打印 1-10 的整数
python 复制代码
# 打印 1-10 的整数
num = 1
while num <= 10:
    print(num)
    num += 1  # 更新循环变量,否则会无限循环
  • 示例 2:计算 1-100 的总和
python 复制代码
# 计算 1-100 的和
# theSum用来表示计算的和
theSum = 0
num = 1
while num <= 100:
    theSum += num
    num += 1
print(theSum)
  • 示例 3:计算 5 的阶乘(5! = 5×4×3×2×1)
python 复制代码
# 计算 5 的阶乘
ret = 1
num = 1
while num <= 5:
    ret *= num
    num += 1
print(ret)
  • 示例4:求 1! + 2! + 3! + 4! + 5!
python 复制代码
# 计算 1! + 2! + 3! + 4! + 5!
theSum = 0
num = 1
while num <= 5:
    # 先计算出当前 num! 是多少,再往 theSum 上进行累加
    i = 1
    ret = 1
    while i <= num:
        ret *= i
        i += 1
    theSum += ret
    num += 1
print(f'sum = {theSum}')

3.2 for 循环:遍历可迭代对象

for循环适合 "已知循环次数" 或 "遍历序列 / 集合" 的场景,语法简洁,不用手动管理循环变量,核心是 for 变量 in 可迭代对象

核心语法:

python 复制代码
"""
for 循环变量 in 可迭代对象:
    循环体代码
"""
  • 可迭代对象:包含多个元素的对象(如列表、字符串、range生成的序列);
  • range()函数:生成整数序列,常用格式:
    • range(n):生成 0~n-1 的序列(如range(5) → 0,1,2,3,4);
    • range(a, b):生成 a~b-1 的序列(如range(1, 6) → 1,2,3,4,5);
    • range(a, b, step):生成 a~b-1 的序列,步长为 step(如range(2, 11, 2) → 2,4,6,8,10)

经典示例:

  • 示例 1:打印 1-10(用 range)
python 复制代码
# 打印 1-10
for i in range(1,11):
    print(i)
  • 示例 2:打印 2,4,6,8,10(步长为2)
python 复制代码
# 打印 2,4,6,8,10
for i in range(2,12,2):
    print(i)
  • 示例 3:打印 10-1(步长为负)
python 复制代码
# 打印从 10 到 1
num = 10
# while num >= 1:
#     print(num)
#     num -= 1
for i in range(10,0,-1):
    print(i)
  • 示例 4:计算 1-100 的总和
python 复制代码
# 求 1 + 2 + 3 + ...... + 100
theSum = 0
for i in range(1,101):
    theSum += i
print(f'sum = {theSum}')
  • 示例5:计算 1! + 2! + 3! + 4! + 5!
python 复制代码
# 计算 1! + 2! + 3! + 4! + 5!
theSum = 0
for i in range(1,6):
    ret = 1
    for j in range(1,i+1):
        ret *= j
    theSum += ret
print(f'sum = {theSum}')

3.3 循环控制:break 和 continue

breakcontinue用于灵活控制循环执行,避免不必要的迭代。
(1)break:终止整个循环

遇到break直接退出循环,后续循环体不再执行:

python 复制代码
# 示例:模拟吃包子,吃到第3个发现虫子,停止继续吃
for i in range(1, 6):
    if i == 3:
        print(f"吃到第{i}个包子,发现半只虫!停止进食~")
        break
    print(f"吃完第{i}个包子")

输出结果:

bash 复制代码
吃完第1个包子
吃完第2个包子
吃到第3个包子,发现半只虫!停止进食~

(2)continue:跳过本次循环,进入下次

遇到continue跳过当前循环体剩余代码,直接判断下一次循环条件:

python 复制代码
# 示例:模拟吃包子,吃到第3个发现虫子,跳过这个,继续吃下一个
for i in range(1, 6):
    if i == 3:
        print(f"吃到第{i}个包子,发现一只虫!扔掉这个~")
        continue
    print(f"吃完第{i}个包子")

输出结果:

bash 复制代码
吃完第1个包子
吃完第2个包子
吃到第3个包子,发现一只虫!扔掉这个~
吃完第4个包子
吃完第5个包子

注意:其实我们的while循环和for循环也是可以循环使用的

python 复制代码
# 示例:计算1! + 2! + 3! + 4! + 5!(阶乘和)
sum_fact = 0
# 外层循环:控制计算到第几个阶乘
for num in range(1, 6):
    fact = 1
    # 内层循环:计算当前num的阶乘
    for i in range(1, num + 1):
        fact *= i
    sum_fact += fact
print(f"1!+2!+3!+4!+5! = {sum_fact}")  # 输出:153

四. 综合实战:人生重开模拟器(简化版)

结合条件语句和循环语句,实现一个热门文字游戏的核心逻辑,让你直观感受流程控制的用法。

游戏规则:

  • 设定初始属性(颜值、体质、智力、家境),总和不超过 20;
  • 随机生成性别(掷骰子:单数为男孩,双数为女孩);
  • 根据家境生成出生点,影响初始属性;
  • 模拟 1-10 岁的人生经历,每年随机触发事件,更新属性。
  • 再后面的中年和老年阶段大家可以自己下去实现完善一下

完整代码:

python 复制代码
# 人生重开模拟器
import random
import sys
import time

print('+----------------------------------------------------------+')
print('|                                                          |')
print('|                花有重开日,人无再少年                         |')
print('|                                                          |')
print('|                欢迎来到,人生重开模拟器                        |')
print('|                                                          |')
print('+----------------------------------------------------------+')


# 设置初始属性
# 颜值,体质,智力,家境,总和不能超过 20,每一项取值都是 1-10 之间

# 使用循环,使玩家在输入错误的时候,可以重新输入
while True:
    print("请设置初始属性(可用点数总数为 20)")
    face = int(input("请输入颜值(1-10): "))
    strong = int(input("请输入体质(1-10): "))
    iq = int(input("请输入智商(1-10): "))
    home = int(input("请输入家境(1-10): "))

    # 通过条件语句,对于用户输入的属性值做出检验检查
    # 这段逻辑,使用 elif 其实也是完全没问题的
    # 使用 elif 则是多个分支只能进一个,一旦一个条件满足了,就不会再走其他的分支了
    # 此处虽然没有使用 elif ,但是有了 continue,一旦某个条件满足,continue 就会使循环从头再来
    # 也就没机会执行后续的条件判定了
    if face < 1 or face > 10:
        print("颜值设置有误!")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误!")
        continue
    if iq < 1 or iq > 10:
        print("智商设置有误!")
        continue
    if home < 1 or home > 10:
        print("家境设置有误!")
        continue
    if face + strong + iq + home > 20:
        print("总的属性和超出了 20,设置有误!")
        continue

    # 如果当前上面的条件都没有触发,则认为玩家输入的数据是合法的
    # 此时就可以跳出循环结束输入了
    print("初始属性输入完毕!")
    print(f"颜值: {face},体质: {strong},智商: {iq},家境: {home}")
    break

# 生成角色的性别
# 使用 random.randint(beg,end),就能生成[beg,end]随机整数
point = random.randint(1,6)
# print(f'point = {point}')
if point % 2 == 1:
    gender = 'boy'
    print("你是个男孩")
else:
    gender = 'girl'
    print("你是个女孩")

# 设置角色出生点
# 为了简单,就直接生产 1-3 的随机数
point  = random.randint(1,3)
if home == 10:
    # 第一档
    print("你出生在帝都,你的父母都是高官政要")
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print("你出生在大城市,父母是公务员")
        face += 2
    elif point == 2:
        print("你出生在大城市,父母是企业高官")
        home += 2
    else:
        print("你出生在大城市,父母是大学教授")
        iq += 2
elif 4 <= home <= 6:
    # 第三档
    if point == 1:
        print("你出生在三线城市,你的父母是医生")
        strong += 1
    elif point == 2:
        print("你出生在镇上,你的父母是老师")
        iq += 1
    else:
        print("你出生在镇上,你的父母是个体户")
        home += 1
else:
    # 第四档
    if point == 1:
        print("你出生在农村,父母是辛苦劳作的农民")
        strong += 1
        face -= 2
    elif point == 2:
        print("你出生在穷乡僻壤,你的父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上,你的父母感情不合")
        strong -= 1
print(f"颜值: {face},体质: {strong},智商: {iq},家境: {home}")

# 幼年阶段
for age in range(1, 11):
    # 把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印
    info = f'你今年{age}岁. '
    # 生产一个 [1,3] 的随机整数
    point = random.randint(1,3)
    # 接下来编写各种事件的代码
    # 性别触发的事件
    if gender == 'girl' and home <= 3 and point == 1:
        info += "你家里人重男轻女思想非常严重,你被遗弃了!"
        print(info)
        print("游戏结束!")
        sys.exit(0)
    # 体质触发的事件
    # 使用 elif 是为了保证每年只触发一个事件!
    elif strong < 6 and point < 3:
        info += "你生了一场病, "
        if home >= 5:
            info += "在父母的悉心照料下,你康复了"
            strong += 1
            home -= 1
        else:
            info += "你的父母没精力管你,你的身体情况更糟糕了"
    # 颜值触发的事件
    elif face <= 4 and age >= 7:
        info += "你长的太丑了,别的小朋友都不喜欢你"
        if iq > 5:
            info += "你开始发奋图强,努力学习"
            iq += 1
        else:
            if gender == 'boy':
                info += "你和别的小朋友经常打架!"
                strong += 1
                iq -= 1
            else:
                info += "你经常被别的小朋友欺负"
                strong -= 1
    # 智商触发的事件
    elif iq < 5:
        info += "你看起来傻傻的. "
        if home >= 8 and age >= 6:
            info += "你的父母把你送到更好的学校学习"
            iq += 1
        elif 4 <= home <= 7:
            if gender == 'boy':
                info += "你的父母鼓励你多运动,争取成为运动员"
                strong += 1
            else:
                info += "你的父母鼓励你多打扮自己"
                face += 1
        else:
            # 家境 < 4
            info += "你的父母为此经常吵架"
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    # 健康成长事件
    else:
        info += "你健康成长. "
        if point == 1:
            info += "你看起来更结实了. "
            strong += 1
        elif point == 2:
            info += "你看起来更好看了. "
            face += 1
        else:
            # 无事发生
            pass

    # 打印这一年发生的事情
    print(info)
    print(f"颜值: {face},体质: {strong},智商: {iq},家境: {home}")
    print("--------------------------------------------------")
    # 为了方便观察,加一个小小的暂停动作
    time.sleep(1)

结尾:

html 复制代码
🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!

结语:Python 的流程控制是编程逻辑的核心,条件语句让程序 "有选择",循环语句让程序 "省力气"。掌握if-elif-else、while、for的用法,再结合break、continue的灵活控制,你就能写出解决实际问题的脚本(如数据统计、自动化工具、小游戏)。建议多动手练习案例(比如修改 "人生重开模拟器",增加青年、壮年阶段的逻辑),通过实战巩固语法,培养 "用代码解决问题" 的思维。

✨把这些内容吃透超牛的!放松下吧✨ ʕ˘ᴥ˘ʔ づきらど

相关推荐
橙 子_1 小时前
在 Amazon Bedrock 中推出 Claude Sonnet 4.5:Anthropic 最智能的模型,最适合编码和复杂代理
人工智能·python·云原生·html
咕噜签名-铁蛋1 小时前
虚拟化软件
人工智能
laozhoy11 小时前
深入理解Golang中的锁机制
开发语言·后端·golang
曜华激光1 小时前
太阳能电池串实验室测试仪定制化解决方案
大数据·人工智能
zore_c1 小时前
【数据结构】队列——超详解!!!(包含队列的实现)
c语言·网络·数据结构·c++·笔记·算法·链表
码luffyliu1 小时前
Go 中的深浅拷贝:从城市缓存场景讲透指针与内存操作
后端·go·指针·浅拷贝·深拷贝
BFT白芙堂1 小时前
Franka Research 3 进阶应用:基于神经网络的 ORACLE 交互控制策略深度解析
人工智能·深度学习·神经网络·oracle·机器人·人机交互·vr
雾岛听蓝2 小时前
C++ 模板初阶
开发语言·c++
小杰帅气2 小时前
智能指针喵喵喵
开发语言·c++·算法