

在学习 Python 的过程中,顺序、条件和循环语句是最基础、也是最核心的三类流程控制结构.无论是简单的数据处理,还是复杂的项目逻辑,程序本质上都离不开"先做什么、遇到不同情况怎么判断、重复任务如何执行"这三个问题.本篇文章将围绕Python中的顺序语句、条件语句和循环语句展开讲解,帮助你理解程序执行流程的基本规律.为了让这些知识点不只是停留在语法层面,文章最后还会结合一个有趣的综合案例——“人生重开模拟器”,把前面学到的内容串联起来,实现一个可以根据不同属性和选择生成不同人生结果的小程序.通过这个案例,你不仅能巩固 if 判断、for 循环、while 循环等基础语法,还能体会到如何把多个知识点组合起来完成一个完整的小项目.希望学完本篇内容后,你能真正理解流程控制在Python编程中的作用,并具备独立编写简单交互程序的能力.废话不多说,下面跟着小编的节奏🎵一起去疯狂的学习吧!

目录
1.顺序语句
Python中的顺序语句指程序按照代码书写的先后顺序,从上到下一条一条执行.这是最基本的程序执行结构.
例如:
print("开始程序")
a = 10
b = 20
c = a + b
print(c)
print("程序结束")
执行顺序是:
开始程序
a 被赋值为 10
b 被赋值为 20
c 计算为 30
输出 30
程序结束
运行结果:
开始程序
30
程序结束
顺序语句常见形式包括:
变量赋值
输入语句
输出语句
表达式计算
函数调用
例如:
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
print("你好," + name)
print("明年你将", age + 1, "岁")
这里程序会先输入名字,再输入年龄,最后依次输出结果.
简单来说:
顺序语句就是 Python 默认的执行方式:先写的先执行,后写的后执行.
默认情况下,Python 的代码执行顺序是按照从上到下的顺序,依次执行的.
print("1")
print("2")
print("3")
执行结果一定为"123",而不会出现"321"或者"132"等.这种按照顺序执行的代码,我们称为顺序语句.
2.条件语句
2.1什么是条件语句
条件语句能够表达"如果 … 否则 …"这样的语义.这构成了计算机中基础的逻辑判定.
条件语句也叫做分支语句,表示了接下来的逻辑可能有几种走向.
Python中的条件语句用于根据条件是否成立,决定执行哪一段代码.
如果 我认真敲代码
我就很容易找到工作
否则
我就容易毕业就失业
其中"我认真敲代码"称为条件.如果条件成立(条件为真),则会出现"我就很容易找到工作"这个情况.如果条件不成立(条件为假), 则会出现"我就容易毕业就失业".
当然,同样的逻辑,还可以反着表达.
如果 我选择躺平摆烂
我就容易毕业就失业
否则
我就很容易找到工作
虽然结构变了,但是整体表达的语义是等价的.
2.2语法格式
Python中使用 if else关键字表示条件语句.
最常见的是 if 语句:
age = 18
if age >= 18:
print("你已经成年")
如果条件 age >= 18 成立,就执行缩进里面的代码.
1.if 语句
if expression:
do_something1
do_something2
next_something
如果expression值为True,则执行do_something1,do_something2,next_something.
如果expression值为False,则只执行 next_something,不执行do_something1,do_something2.
score = 90
if score >= 60:
print("及格")
运行结果:
及格
2.if…else 语句
if expression:
do_something1
else:
do_something2
如果expression值为True,则执行do_something1
如果expression值为False,则执行do_something2
当条件成立执行一段代码,不成立执行另一段代码.
score = 50
if score >= 60:
print("及格")
else:
print("不及格")
运行结果:
不及格
3.if…elif…else 语句
if expression1:
do_something1
elif expression2:
do_something2
else:
do_something3
如果expression1值为True,则执行do_something1
如果expression1值为False,并且expression2为True则执行do_something2
如果expression1值为False,并且expression2为False则执行do_something3
用于多个条件判断.
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
运行结果:
良好
注意: Python中的条件语句写法,和很多编程语言不太一样.
if后面的条件表达式,没有 ( ),使用 : 作为结尾.
if/else 命中条件后要执行的"语句块",使用缩进 (通常是4个空格或者1个tab)来表示,而不是 { }
对于多条件分支,不是写作 else if,而是elif (合体了).
示例: 输入1表示愿意认真学习,输入2表示躺平摆烂.
choice = input("输入 1 表示认真学习,输入 2 表示躺平摆烂:")
if choice == "1":
print("你会找到好工作!")
elif choice == "2":
print("你可能毕业就失业了!")
else:
print("你的输入有误!")

4.条件语句的基本格式
if 条件:
条件成立时执行的代码
elif 另一个条件:
另一个条件成立时执行的代码
else:
所有条件都不成立时执行的代码
注意:Python用缩进表示代码块,通常是 4 个空格.
简单来说:
条件语句就是让程序“根据不同情况做不同事情”.
2.3缩进和代码块
缩进和代码块是 Python 条件语句里最重要的规则.
Python 不用 {} 表示代码范围,而是用缩进表示"哪些代码属于同一组".
1.什么是缩进?
缩进就是代码前面的空格.
例如:
if choice == "1":
print("你会找到好工作!")
这里的 print() 前面有缩进,表示它属于上面的 if.
也就是说:
if choice == "1":
print("你会找到好工作!")
意思是:
如果
choice == "1"成立,就执行print("你会找到好工作!")
2.什么是代码块?
代码块就是属于同一个结构的一组代码.
例如:
if choice == "1":
print("你会找到好工作!")
print("继续加油!")
这两个 print() 都有相同缩进,所以它们都属于 if 代码块.
如果条件成立,两个都会执行.
3.缩进规则总结
记住这几条就够了:
if、elif、else后面要写英文冒号:- 冒号下面的代码必须缩进
- 同一个代码块里的缩进必须一样
- 一般使用 4 个空格 或按一次
Tab - 不要一会儿用空格,一会儿用Tab,容易报错
最简单理解:
if 条件:
条件成立时执行的代码
else:
条件不成立时执行的代码
缩进去的代码,才属于上面的条件语句.
代码块指的是一组放在一起执行的代码.
在Python中使用缩进表示代码块.不同级别的缩进,程序的执行效果是不同的.
# 代码1
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
# 代码2
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
注意上述代码的区别.
在代码1中,print(“world”) 有一级缩进,这个语句属于 if 内的代码块,意味着条件成立,才执行,条件不成立,则不执行.
在代码2中,print(“world”) 没有缩进,这个语句是 if 外部的代码,不属于 if 内部的代码块.意味着条件无论是否成立,都会执行.
另外,代码块内部还可以嵌套代码块.
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
if b == "2":
print("hello")
print("world")
print("python")
在这个代码中:
print(“hello”)具有两级缩进,属于 if b == “2” 条件成立的代码块.
print(“world”) 具有一级缩进,属于 if a == “1” 条件成立的代码块.
print(“python”) 没有缩进, 无论上述两个条件是否成立, 该语句都会执行.
基于缩进的方式表示代码块,带来的好处就是强制要求程序猿要写明确的缩进,来明确代码之间的相对关系.如果缩进书写的不对,则直接报错.同时,带来的坏处就是,如果缩进层次比较多,就容易分不清楚某个语句属于哪个层级.
2.4练习
(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 % 100 != 0 and year % 4 == 0) or year % 400:
print("闰年")
else:
print("平年")

2.5空语句pass
pass 是 Python 的空语句,表示"什么都不做".
它常用于:语法上必须写一段代码,但你暂时还没想好写什么的时候.
1.基本用法
if 条件:
pass
else:
print("执行 else")
pass 不会产生任何效果,只是占一个位置,防止程序报错.
2.为什么需要 pass?
比如你这样写会报错:
if True:
因为 if 后面必须有代码块.
即使你写注释也不行:
if True:
# 以后再写
这也会报错,因为注释不是代码.
正确写法:
if True:
pass
代码示例: 输入一个数字, 如果数字为1,则打印hello.
a = int(input("请输入一个整数:"))
if a == 1:
print("hello")
这个代码也可以等价写成:
a = int(input("请输入一个整数:"))
if a != 1:
pass
else:
print("hello")
其中pass表示空语句,并不会对程序的执行有任何影响,只是占个位置,保持Python语法格式符合要求.
3.循环语句
循环语句用于让一段代码重复执行多次.
Python中常见循环有两种:
while 循环
for 循环
3.1while循环
while 的意思是:只要条件成立,就一直执行.
基本语法格式
while 条件:
循环体
条件为真,则执行循环体代码.
条件为假,则结束循环.
i = 1
while i <= 5:
print(i)
i = i + 1
运行结果:
1
2
3
4
5
解释:
while i <= 5:
表示只要 i 小于等于 5,就执行下面缩进的代码.
注意:循环里面一定要让条件有机会变成不成立,否则会变成死循环.
代码示例: 打印 1-10 的整数
num = 1
while num <= 10:
print(num)
num += 1
代码示例: 计算 1-100 的和
sum = 0
num = 1
while num <= 100:
sum += num
num += 1
print(sum)
代码示例: 计算 5 的阶乘
result = 1
n = 1
while n <= 5:
result *= n
n += 1
print(result)
代码示例: 求 1! + 2! + 3! + 4! + 5!
num = 1
sum = 0
while num <= 5:
factorResult = 1
i = 1
while i <= num:
factorResult *= i
i += 1
sum += factorResult
num += 1
print(sum)
这个程序用到了两重循环.也就是在循环语句中也可以套循环.
3.2for循环
for 循环常用于按照顺序遍历一组内容.
基本语法格式
for 循环变量 in 可迭代对象:
循环体
注意:
python的for和其他语言不同,没有"初始化语句",“循环条件判定语句”,“循环变量更新语句”,而是
更加简单所谓的"可迭代对象",指的是"内部包含多个元素,能一个一个把元素取出来的特殊变量"
例如:
for i in range(5):
print(i)
运行结果:
0
1
2
3
4
注意:
range(5)
表示从 0 到 4,不包括 5.
代码示例: 打印 1-10
for i in range(1, 11):
print(i)
使用range函数,能够生成一个可迭代对象.生成的范围是 [1, 11), 也就是 [1, 10]
代码示例: 打印 2, 4, 6, 8, 10
for i in range(2, 12, 2):
print(i)
通过range的第三个参数,可以指定迭代时候的"步长".也就是一次让循环变量加几.
代码示例: 打印 10-1
for i in range(10, 0, -1):
print(i)
range的步长也可以设定成负数.
代码示例: 求 1 - 100 的和
sum = 0
for i in range(1, 101):
sum += i
print(sum)
3.3range()常见写法
range(5)
表示:
0, 1, 2, 3, 4
range(1, 6)
表示:
1, 2, 3, 4, 5
range(1, 10, 2)
表示:
1, 3, 5, 7, 9
格式是:
range(开始值, 结束值, 步长)
结束值不包含在里面.
3.4continue跳过本次循环
continue 表示跳过本次循环,继续下一次循环.
for i in range(1, 6):
if i == 3:
continue
print(i)
运行结果:
1
2
4
5
当 i == 3 时,不执行下面的 print(i),直接进入下一轮.
代码示例: 模拟吃包子.吃第3个包子的时候吃出了一只虫.
for i in range(1, 6):
if i == 3:
continue
print(f"吃完第 {i} 个包子")
3.5break结束循环
break 表示立刻结束整个循环.
for i in range(1, 6):
if i == 3:
break
print(i)
运行结果:
1
2
当 i == 3 时,循环直接结束.
代码示例: 模拟吃包子. 吃第3个包子的时候吃出了半只虫.
for i in range(1, 6):
if i == 3:
break
print(f"吃完第 {i} 个包子")
代码示例: 输入若干个数字,求平均值.使用 “分号” 作为结尾.
sum = 0
count = 0
while True:
num = input("请输入数字:")
if num == ';':
break
num = float(num)
sum += num
count += 1
print(sum / count)
最简单记住:
循环语句就是让代码重复执行。
while看条件,for常配合range()使用。
4.综合案例–实现"人生重开模拟器"
实现 “人生重开模拟器”.这是一款之前很火的文字类小游戏.玩家输入角色的初始属性之后,就可以开启不同的人生经历.大家可以在网上搜索"人生重开模拟器",就可以玩到这个游戏的各种版本. 完整的程序代码较多, 此处我们先说明实现其中的一部分逻辑,然后给一个完整实现部分.
4.1设置初始属性
在游戏中我们设定四个属性.
- 颜值 (face)
- 体质 (strong)
- 智力 (iq)
- 家境 (home)
我们约定每个属性的范围为 [1, 10], 并且总和不能超过 20.
如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入.
print("+---------------------------------------------------------------------+")
print("| |")
print("| 花有重开日, 人无再少年 |")
print("| |")
print("| 欢迎来到, 人生重开模拟器 |")
print("| |")
print("+---------------------------------------------------------------------+")
# 设置初始属性
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("初始属性设定完成!")
break
4.2设置性别
通过random.randint(1, 6)生成一个[1, 6]的随机整数,类似于掷色子.
- 如果是单数,则性别设为男孩.
- 如果是双数,则性别设为女孩.
男孩和女孩会遇到不同的事件.
point = random.randint(1, 6) # 掷色子
if point % 2 == 1:
gender = 'boy'
print("你是个男孩")
else:
gender = 'girl'
print("你是个女孩")
4.3设置出生点
首先按照家境(home), 分成四个档位.
- 10 是第一档.加成最高
- [7, 9] 是第二档.也有一些加成
- [4, 6] 是第三档.加成较少
- [1, 3] 是第四档.会扣掉属性.
再扔一次色子,生成[1, 3]的随机数,用来表示每一种细分情况.
这里的代码主要就是各种if else构成.
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('你出生在三线城市, 你的父母是教师')
iq += 1
elif point == 2:
print('你出生在镇上, 你的父母是医生')
strong += 1
else:
print("你出生在镇上, 你的父母是个体户")
home += 1
else:
if 1 <= point <= 2:
print('你出生在村里, 你的父母是辛苦劳作的农民')
strong += 1
face -= 2
elif 3 <= point <= 4:
print('你出生在穷乡僻壤, 你的父母是无业游民')
home -= 1
else:
print('你出生在镇上, 你父母感情不和')
strong -= 1
4.4针对每一岁,生成人生经历
按照年龄,把人生经历分成四个阶段:
- 幼年阶段 [1, 10]
- 青年阶段 [11, 20]
- 壮年阶段 [20, 50]
- 老年阶段 50 岁以上.
每个阶段都会有不同的精力和事件发生.
- 幼年阶段可塑性强, 体质, 颜值, 智力都会有较快变化
- 青年阶段主要是求学, 同时父母一辈会有明显变化, 智力和家境会有明显变化.
- 壮年阶段相对平稳, 属性变化不大, 主要是一些随机事件影响到属性.
- 老年阶段体质, 颜值, 智力都会显著退化, 并且随着年龄的上升, 疾病/死亡的风险逐渐升高.
此处我们以幼年为例, 简单实现一下这里的处理逻辑.
- 使用for循环,按照年龄循环起来.
- 针对每一年,先掷一次 [1, 3] 的色子,根据不同的随机数值,来触发不同的事件.
- 根据性别,年龄,各种属性,来触发不同的事件.这里都使用if - else的方式来组织.
- 不同的事件可能会对属性有正面/负面的影响.
- 在每一年的最后,打印这一年遇到的事情.
- 如果夭折,则直接 sys.exit(0) 退出程序.
- 使用time.sleep(1)使程序暂停执行1s,方便观察程序结果.
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 += '你的父母没精力管你,你的身体状况更糟糕了'
strong -= 1
# 颜值触发的事件
elif face < 4 and age >= 7:
info += '你因为长的太丑,别的小朋友不喜欢你,'
if iq > 5:
info += '你决定用学习填充自己'
iq += 1
else:
if gender == 'boy':
info += '你和别的小朋友经常打架'
iq -= 1
strong += 1
else:
info += '你经常被别的小朋友欺负'
strong -= 1
# 智商触发的事件
elif iq < 5:
info += '你看起来傻傻的,'
if home >= 8 and age >= 6:
info += '你的父母给你送到更好的学校学习'
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:
info += '你健康成长,'
if point == 1:
info += '看起来更聪明了'
iq += 1
elif point == 2:
info += '看起来更好看了'
face += 1
else:
info += '看起来更结实了'
strong += 1
print('------------------------------------------------')
print(info)
print(f'strong={strong}, face={face}, iq={iq}, home={home}')
time.sleep(1)
更多的逻辑,此处就不再实现了.大家可以按照类似的方式,设计更多的事件,完成青年,壮年,老年 的相关逻辑.
4.5完整代码模拟实现
import random
print("====== 人生重开模拟器 ======")
while True:
print("\n是否开始新人生?")
print("1. 开始")
print("2. 退出")
choice = input("请输入你的选择:")
if choice == "2":
print("游戏结束,欢迎下次再来重开人生!")
break
elif choice != "1":
print("输入有误,请重新输入。")
continue
print("\n正在随机生成你的初始属性...")
beauty = random.randint(1, 100)
intelligence = random.randint(1, 100)
health = random.randint(1, 100)
family = random.randint(1, 100)
print("\n你的初始属性如下:")
print("颜值:", beauty)
print("智力:", intelligence)
print("体质:", health)
print("家境:", family)
score = 0
if beauty >= 80:
print("你颜值出众,从小很受欢迎。")
score += 20
elif beauty >= 50:
print("你的颜值普通,但看起来很顺眼。")
score += 10
else:
print("你的颜值一般,但问题不大。")
score += 5
if intelligence >= 80:
print("你天资聪明,学习能力很强。")
score += 30
elif intelligence >= 50:
print("你的智力正常,努力就有收获。")
score += 15
else:
print("你学习比较吃力,需要更加努力。")
score += 5
if health >= 80:
print("你身体强壮,很少生病。")
score += 20
elif health >= 50:
print("你的身体状况一般。")
score += 10
else:
print("你的体质较弱,需要注意健康。")
score -= 10
if family >= 80:
print("你出生在富裕家庭,起点很高。")
score += 30
elif family >= 50:
print("你的家庭条件普通。")
score += 10
else:
print("你的家庭条件较差,人生开局比较困难。")
score -= 10
print("\n====== 人生开始 ======")
age = 0
while age <= 80:
if age == 0:
print("0岁:你出生了。")
elif age == 6:
print("6岁:你开始上小学。")
elif age == 18:
print("18岁:你参加高考。")
if intelligence >= 70:
print("你考上了一所不错的大学。")
score += 30
else:
print("你的高考成绩一般。")
score += 5
elif age == 25:
print("25岁:你开始进入社会工作。")
if intelligence + family >= 130:
print("你找到了一份不错的工作。")
score += 30
else:
print("你找工作比较艰难。")
score += 5
elif age == 35:
print("35岁:你进入人生关键阶段。")
if score >= 100:
print("你的事业和生活都比较顺利。")
score += 30
else:
print("你感受到了一些生活压力。")
score += 5
elif age == 50:
print("50岁:你开始回顾自己的人生。")
if health >= 60:
print("你的身体还不错,生活稳定。")
score += 20
else:
print("你的身体状况不太理想。")
score -= 10
elif age == 80:
print("80岁:你的人生即将结束。")
age += 1
print("\n====== 人生总结 ======")
print("你的最终人生评分是:", score)
if score >= 150:
print("评价:传奇人生!你这一生非常成功。")
elif score >= 100:
print("评价:优秀人生!整体过得不错。")
elif score >= 60:
print("评价:普通人生!有苦有甜。")
else:
print("评价:艰难人生!但你也努力活过。")
print("\n本轮人生结束。")


敬请期待下一篇文章内容
每日心灵鸡汤: 困住你的,往往是你不敢面对的恐惧!
很多时候,人真正被困住的,不是现实本身,而是内心里那些不敢面对的恐惧.我们总以为生活的困难来自环境、运气、别人,甚至时代,可更深层的问题,往往是自己给自己设下了边界.害怕失败,于是不敢开始;害怕失去,于是始终停在原地;害怕被否定,于是不断压抑真正的想法.可那些被逃避的东西,并不会因为不看见就消失,它只会在未来,用更大的代价重新出现.一个人真正的成长,不是等外界变得容易,而是终于有勇气直视自己的恐惧,打破那些长期束缚自己的限制.当你敢跨过去时,才会发现,很多所谓"卡住"的人生,其实只是自己不愿迈出的那一步.

转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2401_87629362/article/details/162687680




