Python 流程控制详解:条件与循环语句及实战
Python 流程控制是编程逻辑的核心,包含条件语句和循环语句。条件语句通过 if-elif-else 实现分支逻辑,支持嵌套;循环语句包括 while 和 for,用于重复执行代码块,配合 break 和 continue 控制流程。内容涵盖基础语法、注意事项及空语句 pass 的作用,并通过人生重开模拟器实战案例演示了属性设置、随机事件触发等综合应用,帮助读者掌握代码按需执行与重复执行的技巧。

Python 流程控制是编程逻辑的核心,包含条件语句和循环语句。条件语句通过 if-elif-else 实现分支逻辑,支持嵌套;循环语句包括 while 和 for,用于重复执行代码块,配合 break 和 continue 控制流程。内容涵盖基础语法、注意事项及空语句 pass 的作用,并通过人生重开模拟器实战案例演示了属性设置、随机事件触发等综合应用,帮助读者掌握代码按需执行与重复执行的技巧。

掌握变量、类型和运算符后,要写出有逻辑、能解决实际问题的 Python 程序,核心是掌握流程控制——也就是让代码'按需执行''重复执行'。Python 的流程控制主要包括条件语句(if-elif-else)和循环语句(while/for),它们是实现复杂逻辑的基础。
默认情况下,Python 的代码执行顺序是按照从上到下的顺序,依次执行的。
# 默认情况下,Python 代码的执行顺序,是从上到下依次执行的。
print("111")
print("222")
print("333")
执行结果一定为 111, 222, 333 而不会是其他的顺序。这种按照顺序执行的代码,我们称为顺序语句。
注意:这个顺序是很关键的,编程是一件明确无歧义的事情,按任务的顺序,计算机才能够正确的进行执行。
条件语句(也叫分支语句)让程序根据不同条件执行不同代码块,核心关键字是 if、elif、else。
Python 的条件语句有 3 种常见形式,语法简洁且强制缩进(4 个空格或 1 个 Tab)区分代码块,不用大括号 {}。
(1)单分支:if 满足条件才执行代码块,不满足则跳过:
# 示例:输入年龄,判断是否成年
age = int(input("请输入你的年龄:"))
if age >= 18:
print("你已成年,可以独立上网~")
(2)双分支:if-else 满足条件执行一个代码块,不满足执行另一个,非此即彼:
# 示例:输入数字,判断奇偶
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print(f"{num} 是偶数")
else:
print(f"{num} 是奇数")
(3)多分支:if-elif-else 处理多个条件判断,只要有一个条件满足就执行对应代码块,后续不再判断:
# 示例:输入成绩,判断等级
score = int(input("请输入你的成绩:"))
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格,需要补考~")
实际示例:
a = input("Enter the First number: ")
b = input("Enter the Second number: ")
# 条件嵌套
if a == '1':
if b == '2':
print("aaa")
print("bbb")
print("ccc")
当条件语句中暂时没有要执行的代码时,用 pass 占位(保持语法完整),否则会报错:
a = input("请输入一个数字:")
if a == '1':
# 啥都不做
pass
else:
print('hello')
# (1) 输入一个整数,判定是否是奇数
a = int(input("请输入一个整数:"))
if a % 2 == 0:
print("偶数")
else:
print("奇数")
# (2) 输入一个整数,判定是正数还是负数
a = int(input("请输入一个整数:"))
if a > 0:
print("正数")
elif a < 0:
print("负数")
else:
print("0")
# (3) 判定年份是否是闰年
year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print("闰年")
else:
print("平年")
循环语句让代码块重复执行,Python 支持 while 循环和 for 循环,各有适用场景。
while 循环适合'不确定循环次数,但知道循环终止条件'的场景,核心是'先判断条件,再执行循环体'。
经典示例:
num = 1
while num <= 10:
print(num)
num += 1
theSum = 0
num = 1
while num <= 100:
theSum += num
num += 1
print(theSum)
ret = 1
num = 1
while num <= 5:
ret *= num
num += 1
print(ret)
for 循环适合'已知循环次数'或'遍历序列 / 集合'的场景,语法简洁,不用手动管理循环变量,核心是 for 变量 in 可迭代对象。
核心语法:
for 循环变量 in 可迭代对象:
循环体代码
range 生成的序列);range() 函数:生成整数序列,常用格式:
range(n):生成 0~n-1 的序列;range(a, b):生成 a~b-1 的序列;range(a, b, step):生成 a~b-1 的序列,步长为 step。经典示例:
for i in range(1, 11):
print(i)
for i in range(2, 12, 2):
print(i)
theSum = 0
for i in range(1, 101):
theSum += i
print(f'sum = {theSum}')
break 和 continue 用于灵活控制循环执行,避免不必要的迭代。
(1)break:终止整个循环
遇到 break 直接退出循环,后续循环体不再执行:
for i in range(1, 6):
if i == 3:
print(f"吃到第{i}个包子,发现半只虫!停止进食~")
break
print(f"吃完第{i}个包子")
(2)continue:跳过本次循环,进入下次
遇到 continue 跳过当前循环体剩余代码,直接判断下一次循环条件:
for i in range(1, 6):
if i == 3:
print(f"吃到第{i}个包子,发现一只虫!扔掉这个~")
continue
print(f"吃完第{i}个包子")
结合条件语句和循环语句,实现一个热门文字游戏的核心逻辑,让你直观感受流程控制的用法。
游戏规则:
完整代码:
import random
import sys
import time
print('+----------------------------------------------------------+')
print('| |')
print('| 花有重开日,人无再少年 |')
print('| |')
print('| 欢迎来到,人生重开模拟器 |')
print('| |')
print('+----------------------------------------------------------+')
# 设置初始属性
face = 0
strong = 0
iq = 0
home = 0
while True:
print("请设置初始属性 (可用点数总数为 20)")
face = int(input("请输入颜值 (1-10): "))
strong = int(input("请输入体质 (1-10): "))
iq = int(input("请输入智商 (1-10): "))
home = int(input("请输入家境 (1-10): "))
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
# 生成角色的性别
point = random.randint(1, 6)
if point % 2 == 1:
gender = 'boy'
print("你是个男孩")
else:
gender = 'girl'
print("你是个女孩")
# 设置角色出生点
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}岁.'
point = random.randint(1, 3)
if gender == 'girl' and home <= 3 and point == 1:
info += "你家里人重男轻女思想非常严重,你被遗弃了!"
print(info)
print("游戏结束!")
sys.exit(0)
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:
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)
Python 的流程控制是编程逻辑的核心,条件语句让程序'有选择',循环语句让程序'省力气'。掌握 if-elif-else、while、for 的用法,再结合 break、continue 的灵活控制,你就能写出解决实际问题的脚本。建议多动手练习案例,通过实战巩固语法,培养'用代码解决问题'的思维。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online