
1. 程序流程控制介绍

2. 顺序控制
2.1 顺序控制介绍
程序从上到下逐行执行,中间没有任何判断和跳转
2.2属性控制举例和注意事项
示意图

案例

3. 分支控制if-else
3.1 介绍

3.2 单分支
- 基本语法
单分支是通过if语句来实现的,if语句的基本语法如下:

- if基本语法说明
-
当条件表达式为True时,就会执行代码块,如果为False,就不执行
-
Python缩进非常重要,是用于界定代码块的,相当于其他编程语言的大括号{}
if_detail.py
python
# 1. 当条件表达式为True时,就会执行代码块,如果为False,就不执行
# 2. Python缩进非常重要,是用于界定代码块的,相当于其他编程语言的大括号{}
if 4<1 :
print("ok1")
print("ok2")
print("ok3")
# 由于缩进不同,也就是不是同一个代码块,所以if控制不到下面的ok3
- 最短的缩进对较长的有包含关系,缩进前后没有要求,但是每个代码应具有相同的缩进长度(TAB或者相同个数的空格)
if_detail.py
python
# 3. 最短的缩进对较长的有包含关系,
# 缩进前后没有要求,但是每个代码应具有相同的缩进长度(TAB或者相同个数的空格)
if 100>20:
print("ok4")
print("ok5")#写两个tab,只要对齐就可以
if 8<2:
print("ok6")
小结:可以看出,和其它语言对比:其它语言的代码块是用{}表示的python缩进就代替了{}

- 案例,创建:if_1.py
请编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,更测输出"你年龄大于18,要对自己的行为负责!"
python
"""
思路分析:
1.定义变量age,接收用于输入(注意要转换成整数)
2.使用if判断即可
"""
age = int(input("请输入小伙伴的年龄:"))
if age >18:
print("你年龄大于18,要对自己的行为负责!")
- 单分支的流程图

3.3 双分支
- 基本语法

- if-else基本语法说明
-
if、else是关键字,是规定好的
-
当条件表达式成立,即执行代码块1.否则执行代码坎2,注意,不要少写了冒号:
- 应用实例,创建:if_2.py
编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,则输出"你年龄大于18,要对白己的行为负责!"。否则,输出"你的年龄不大,这次放过你了
python
"""
思路分析:
1.定义变量age,接收用户输入(注意要转成整数)
2.使用if-else判断即可
"""
age=int(input("请输入小伙伴的年龄:"))
if age > 18:
print("你年龄大于18,要对自己的行为负责!")
else:
print("你的年龄不大,这次放过你了")
- 双分支的流程图

3.4 单分支和双分支的课后练习题
- 对下列代码,若有输出,指出输出结果(2min),if_exercisse01.py
python
#代码
x = 4
y=1
if x>2:
if y>2:
print(x + y)
print("韩顺平教育~")
else:
print("x is", x)
#结果:韩顺平教育~
- 编写程序,定义2个整数变量并赋值,判断两数之和,如果大于等于50,打印"hello world!" [文件:if_exercise02.py]
python
# 编写程序,定义2个整数变量并赋值,判断两数之和,
# 如果大于等于50,打印"hello world!"
"""
思路分析:
1.定义变量num1,num2并赋值
2. 判断num1+num2>=50,是否成立,使用if单分支
"""
num1 = 15
num2 = 60
if num1 + num2 >= 50:
print("hello world!")
- 编写程序,定了2个float型变量并赋值,如果第一个数大于10.0且第2个数小于20.0打印两数之和 [文件:if_exercise03.py]
python
#编写程序,定了2个float型变量并赋值,
# 如果第一个数大于10.0且第2个数小于20.0打印两数之和
"""
思路分析:
1.定义变量num1,num2并赋值
2. 判断num1>10.0 and num2<20.0是否成立使用if单分支
3.根据判断结果输出:num1+num2
"""
num1 = 12.5
num2 = 15.9
if num1 >10.0 and num2 < 20.0:
print(f"{num1}+{num2}={num1+num2}")
- 【选作】定义两个变量int类型判断二者的和,是否能被3又能被5整除,打印提示信息 [文件:if_exercise04.py]
python
# 【选作】定义两个变量int类型判断二者的和,
# 是否能被3又能被5整除,打印提示信息
"""
思路分析:
1.定义两个变量num1 和num2并赋值
2. 判断(num1+num2)%3 == 0 and (num1+num2)%5 == 0 使用双分支if-else
3. 输出结果
"""
num1 = 10
num2 = 2
if (num1+num2)%3 == 0 and (num1+num2) % 5 == 0:
print(f"{num1+num2}能被3又能被5整除")
else:
print(f"{num1 + num2}不能被3又能被5整除")
- 判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除2)能被400整除
文件:if_exercise05.py
python
#5. 判断一个年份是否是闰年,闰年的条件是符合下面二者之一:
# (1)年份能被4整除,但不能被100整除(2)能被400整除
"""
思路分析:
1. 定义变量year,并赋值
2. 判断(year%4==0 and year%100!=0) or year%400 ==0,使用双分支if-else
3. 输出判断结果
"""
year = 2026
if (year%4==0 and year%100!=0) or year%400 ==0:
print(f"{year}是闰年!")
else:
print(f"{year}不是闰年!")
3.5 多分支
- 基本语法

- 多分支的流程图

- 案例演示
案例演示,创建:if_3.py
小头儿子参加python考试,他和大头爸爸达成承诺:
如果:
成绩为100分时,奖励一辆BMW:
成绩为(80,99]时,奖励一台iphone13:
当成绩为[60,80]时,奖励一个iPad:
其它时,什么奖励也没有。
请从键盘输入小头儿子的期末成绩,并加以判断
python
"""
思路分析:
1.定义变量score接受成绩,转成一个int类型
2. 根据成绩进行判断,输出相应的提示信息
3. 使用多分支 if--elif--else
"""
score = int(input("请输入成绩[整数]:"))
if 0 <= score <= 100: #python可以简化,其他语言不行
if score ==100:
print("奖励一辆BMW")
elif 80 < score <= 99:
print("奖励一台iphone13")
elif 60 <= score <= 80:
print("奖励一个iPad")
else:
print("没有奖励")
else:
print(score,"不在范围内")

结果:输出b
3.6 多分支课后练习题

python
"""
思路分析:
1.定义三个变量,height,money,handsome,接受用户输入
2.根据输入+题目给出的判断条件进行多分支判断,输出相应提示
3.使用if-elif-else
"""
height = float(input("身高(cm):"))
money= float(input("钱(万):"))
handsome = input("颜值(帅,不帅!):")
if height>180 and money>1000 and handsome=="帅":
print("我一定要嫁给他!")
elif height>180 or money > 1000 or handsome== "神":
print("嫁吧,比上不足,比下有余...")
else:
print("不嫁!")
4. 嵌套分支
4.1 基本介绍
- 基本介绍
-
嵌套分支:在一个分支结构中又嵌套了另一个分支结构
-
里面的分支的结构称为内层分支,外面的分支结构称为小层分支
-
规范:不要超过3层(可读性不好)
- 基本语法

4.2 应用案例
- 参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。输入成绩和性别,进行判断和输出信息。「文件:nesteed_if_example1.py]
python
"""
思路分析:
1.定义两个变量用sex,grade,接收用户输入
2. 用嵌套分支完成,如果成绩大于8.0则进入if,否则淘汰
3. 在if分支内,如果sex为女,分到女子组,否则男子组
"""
grade = float(input("请输入成绩:"))
if grade > 8.0:
sex = input("请输入性别:")
if sex =='女':
print("你被分到了女子组!")
else:
print("你被分到了男子组!")
else:
print("你被淘汰了!")
- 出票系统:根据淡旺季的月份和年龄,打印票价[课后练习][nested_if_example2.py]
4-10旺季:
成人(18-60):60
儿童(<18):半价
老人(>60):1/3
淡季:
成人:40
其他:20
python
"""
思路分析:
1. 定义两个变量month,age,用户输入赋值
2. 使用嵌套分支,if旺季if成人elif儿童--else老人---else淡季同理
3. 根据要求给出提示信息
"""
month = int(input("请输入月份:"))
age = int(input("请输入年龄:"))
if 4<=month<=10:
if age>60:
print("价格为1/3,20")
elif age>18:
print("60原价")
else:
print("半价,30")
else:
if 18<=age<=60:
print("价格40")
else:
print("价格20")
5. for循环控制
5.1 看一个实际需求
- 看一个实际需求
请大家看个案例[for_01.py]:编写一个程序可以打印10句"你好,韩顺平教育!"。请大家想想怎么做?
5.2基本介绍
- for循环 -基本介绍
for循环听其名而知其意,就是让你的代码可以循环的执行,是通过for语句来实现的.
- for语句-基本语法
for<变量>in<范围/序列>:
<循环操作语句>
- for基本语法说明
-
for、in是关键字,是规定好的
-
<范围/序列>可以理解要处理的数据集,需要是可选代对象(比如字符串,列表等..)
-
循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体
-
python的for循环是一种"轮询机制",是对指定的数据集,进行"轮询处理"
5.3 for循环的流程分析
- 使用for循环完成前面的题,文件:for_01.py
python
#编写一个程序可以打印10句"你好,韩顺平教育!"。请大家想想怎么做?
# 定义一个列表(后面详细介绍),可以视为一个数据集
nums = [1,2,3,4,5,6,7,8,9,10]
# for<变量>in<范围/序列>:
# <循环操作语句>
# 每次循环的时候,依次将nums的值取出赋给i
for i in nums:
print("你好,韩顺平教育!",i)
for i in [1,2,3,4]:
print("你好,韩顺平教育!",i)
- 画出流程图

- 代码执行内存分析法图


驻留机制:只要值相同,变量指向的空间就相同

5.4 注意事项和细节说明
-
循环时,依次将序列中的值取出赋给变量
-
如需要遍历数字序列,可以使用内置range()函数,它会生成数列。range()生成的数列是前闭后开
(for_detail.py)
#range函数的解读
class range(stop)
class range(start, stop, step=1)
#1.虽然被称为函数,但range实际上是一个不可变的序列类型
#2.range默认增加的步长step是1,也可以指定,start默认是0
#3.通过list()可以查看range()生成的序列包含的数据
#4.range()生成的数列是前闭后开range(1,5)--1,2,3,4
#1.需求:生成一个[1,2,3,4,5]
#2.需求:生成一个[0,1,2,3,4,5]
#3.需求:生成一个[1,3,5,7,9]
#4. 需求使用for+range方式输出10句"hello,python"
python
#range函数的解读
# class range(stop)
# class range(start, stop, step=1)
#1.虽然被称为函数,但range实际上是一个不可变的序列类型
#2.range默认增加的步长step是1,也可以指定,start默认是0
#3.通过list()可以查看range()生成的序列包含的数据
#4.range()生成的数列是前闭后开range(1,5)--1,2,3,4
#1.需求:生成一个[1,2,3,4,5]
# r1 = range(1,6,1)
r1 = range(1,6)
print("r1=",list(r1))
#2.需求:生成一个[0,1,2,3,4,5]
r2 = range(6)
print("r2=",list(r2))
#3.需求:生成一个[1,3,5,7,9]
r3 = range(1,10,2)
print("r3=",list(r3))
#4. 需求使用for+range方式输出10句"hello,python"
for i in range(10):
print("hello python")
# 解决之前想要循环数量较大的时候的问题,直接在range(10000)
- for可以和else配合使用
1)先演示一下,后面学习了break,再回头加强一下
2)语法格式

3)使用案例for_else.py

python
#for-else使用案例
nums=[1,2,3]
for i in nums:
print("你好,韩顺平教育",i)
if i ==2:
break
else:
print("没有循环数据了..")
5.5 for循环的课堂练习

6. while循环
6.1 基本语法
- 基本介绍
while循环用于在表达式为真的情况下,重复的(循环的)执行,是通过while语句来实现的.
- while语句-基本语法
while判断条件(condition):
循环操作语句(statements)......
- while基本语法说明
-
while是关键字,是规定好的
-
当判断条件为True时,就执行循环操作语句,如果为False,就退出while
-
循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体
6.2 while循环执行流程分析
- 使用while循环完成前面的题,while_01.py
python
"""
思路分析
1.定义变量i=1
2.使用while循环判断i<=10,如果为真就执行"hello,韩顺平教育"
3.注意i的值要不断的增加i+=1
"""
i = 1
while i<=10:
print("hello")
i += 1
- 画出流程分析图

- 代码执行 内存 分析图

6.3 注意事项和细节说明
- while可以和else配合使用
1)这里先给人家演示一下,后面学习了break,再回头加强一下
2)语法格式

3)使用案例 while_else.python
python
#while-else使用案例
i = 0
while i < 3:
print("你好,韩顺平教育",i)
i += 1
if i ==1 :
break
else:
print("i<3不成立i=",i)
6.4 课堂练习

python
#1、打印1-100之间所有能被3整除的数
"""
思路分析:
1.定义变量i = 1 max_num=100
2.如果i%3==0.说明当前i可以被3整除的
3.满足条件输出即可,注意变量时i+=1
"""
i = 1
max_num = 100
while i<max_num:
if i%3==0:
print(i)
i+=1

python
# 2、打印40-200之间所有的偶数
"""
思路分析:
1.定义i=40 max_num=200,衣示我们要遍历的范围while
2.如果i%2==0,说明当前i是偶数
3.满足条件输出即可,注意遍历时1+=1
"""
i = 40
max_num = 200
while i<max_num:
if(i%2==0):
print(i)
i+=1

python
# 3、不断输入姓名,直到输入"exit"为止
"""
思路分析:
1. 定义变量name接受用户输入
2. 使用while判断,如name!="exit",就循环输出即可
"""
name = ""
while name!="exit":
name = input(print("请输入用户姓名:"))
print("你输入的内容是:",name)

python
# 打印1~100之间所有是9的倍数的整数,统计个数 及 总和
"""
思路分析:
1. 定义变量i = 1,max_num =100,表示要遍历的范围
2. 使用while循环,如果i%9===9,说明是8的倍数
3. 定义变量count统计个数count+=1,定义sum统计总和,sum+=i
"""
i = 1
max_num = 100
count = 0
sum = 0
while i<max_num:
if i%9==0:
count+=1
sum+=i
print(i)
i+=1
print(f"1~100之间可以被9整除的个数为{count},总数为{sum}")
"""
不可以是 101。虽然在这个特定的题目中,因为 100 不是 9 的倍数不会导致最终统计的"个数"出错,
但它会导致程序错误地打印出数字 100,属于逻辑上的错误。为了严格限定范围并保证代码准确性,max_num必须是 100。
"""

python
"""
思路分析:
1.定义一个变量num,接收用户的输入整数,定义一个i= 0
2.遍历0-num,第一个加数是0-num,第二个加数是num-0
3.使用while循环完成即可
"""
num = int(input("请输入一个整数:"))
i= 0
while i<=num:
print(f"{i}+{num-i}={num}")
i+=1
7. 多重循环控制(难点,重点)
7.1 介绍
- 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while均可以作为外层循环和内层循环。【建议】一般使用两层,最多不要超过3层,否则代码的可读性不好

-
实质上,嵌套循环就是把内层循环当成外层循环的循环体
-
如果外层循环m次,内层为n次,则内层循环实际上需要执行m*n次,文件【multiply_for.py】

7.2 经典的打印金字塔
- 使用for 循环完成下面的案例
请编写一个程序,可以接收一个整数,表示层数(total_level),打印出空心金字塔。[化繁为简,先死后活]

- 完成思想,可以先从矩形开始打

- 代码实现,文件stars.py
python
""""
请编写一个程序,可以接收一个整数,表示层数(total_level),
打印出空心金字塔。
"""
"""
思路分析:
-先死后活
1. 先不考虑层数的变化,假定就是5层,后面做活
-化繁为简
1. 打印矩形
2. 打印直角三角形
3. 打印金字塔
4. 打印空心金字塔
"""
"""
1.打印矩形
*****
*****
*****
*****
"""
for i in range(1,6):
# j 控制每层输出的*号个数
for j in range(1,6):
# 这里end=""表示输出不换行,C语言直接printf,它在循环外printf("\n");
# C++:cout << "*"; 内循环外cout << endl;
# python的print直接换行,c/c++要手动换行
print("*",end="")
# 每层输出后换行
print("")
"""
2.打印直角三角形
* 1层:1个*
** 2层:2个*
*** 3层:3个*
**** 4层:4个*
***** 5层:5个*
"""
for i in range(1,6):
# j 控制每层输出的*号个数
for j in range(i):#第几层就打印几颗星(1,i+1)也行
print("*",end="")
# 每层输出后换行
print("")
"""
3.打印金字塔
* 1层:1个* 2*1-1 空格:4(总层数-当前层数)
*** 2层:3个* 2*2-1 空格:3
***** 2层:5个* 2*3-1 空格:2
******* 2层:7个* 2*4-1 空格:1
********* 2层:9个* 2*5-1 空格:0
"""
for i in range(1,6):
# k控制输出空格数
for k in range(5-i):
print(" ",end="")
# j 控制每层输出的*号个数
for j in range(2*i-1):#控制*个数
print("*",end="")
# 每层输出后换行
print("")
"""
4. 打印空心金字塔
* 分析:第一层一颗星,最后一层全输出,其他每层两边输出*
* *
* *
* *
*********
"""
# 总层数
total_level = int(input("请输入金字塔的层数:"))
for i in range(1,total_level+1):
# k控制输出空格数,和前面一样
for k in range(total_level-i):
print(" ",end="")
# j 控制每层输出的*号个数
for j in range(2*i-1):#控制*个数,在这里改逻辑
# 最外面要有星号(0,2*i-1-1),最后一排全星
if j==0 or j==2*(i-1) or i==total_level:
print("*",end="")
else:# 其余空格
print(" ",end="")
# 每层输出后换行
print("")

python
n =int(input("请输入棱形的上半部分层数:"))
# 上半部分
# i 控制行数
for i in range(1,n+1):
# j控制空格数
for j in range(n-i):
print(" ",end="")
# k控制*的个数
for k in range(2*i-1):
if k ==0 or k==2*(i-1):
print("*",end="")
else:
print(" ",end="")
print("")
# 下半部分
for i in range(n-1,0,-1):
for j in range(n-i):
print(" ",end="")
for k in range(2*i-1):
if k == 0 or k == 2 * (i - 1):
print("*", end="")
else:
print(" ", end="")
print("")
7.3 应用实例

python
"""
1、统计3个班成绩情况,每个班有5名同学,要求完成
1)求出各个班的平均分和所有班级的平均分,学生的成绩从键盘输入
2)统计三个班及格人数
"""
"""
重要的编程思路:(1)化繁为简[先统计一个班](2)先死后活[先考虑三个班,各有5个学生]
1.统计1个班成绩情况,求出一个班的平均分
2.统计3个班成绩情况,求出各个班的平均分、所有班级的平均分和厂格人数
"""
# 定义相关变量
# 定义班级个数
class_num = int(input("请输出班级个数:"))
# 学生个数
student_num = int(input("请输出学生个数:"))
# 统计一个班的总分
# sum = 0.0
# 统计所有班级的总分
total = 0.0
# 统计所有及格人数
pass_num = 0
for j in range(1,class_num+1):
# 统计一个班成绩情况,求出一个班的平均分for循环5次,接受学员的成绩
# 统计每个班的总分前,需要清零,不然每个班都要加在sum上
sum = 0.0
for i in range(1,student_num+1):
score = float(input(f"请输入第{j}班第{i}学生成绩:"))
# 判断是否及格
if score>=60:
pass_num += 1
# 累加到sum
sum += score
print(f"第{j}班级的平均分{sum / class_num}")
# 将sum累加到total
total += sum
# 输出所以班级的平均分和及格人数,注意加(),不然就只会除以5,再乘3
print(f"所有班级的平均分:{total/(5*3)}及格人数:{pass_num}")

python
"""
题目:打印九九乘法表
"""
"""
思路分析:
1. 使用for循环,首先控制行
2. 在内层再次使用for循环,控制列
3. 打印输出,控制好格式
"""
# 控制行,1-9行
for i in range(1,10):
# 控制列,打印列
for j in range(1,i+1):
# 控制右对齐,留两位位置
print("{}*{}={:2}".format(i,j,i*j),end = " ")
print()
8. break语句
8.1 先看一个需求

思路分析:
-使用循环,但是循环的次数不知道.
-引出break,当某个条件满足时,使用break语句,可以提前终止循环
-通过该需求可以看出break的必要性
8.2 基本介绍
- 说明
break语句用于终止某个语句块的执行,使用在循环中
- 基本语法

8.3 以while使用break为例,画出流程图
break语句流程图

8.4 快速入门
- **完成前面需求:**随机生成1-100的一个数,直到生成了97这个数,看看你一共用了几次?num_break.py
python
# 随机生成1-100的一个数,直到生成了97这个数,看看你一共用了几次?
"""
思路分析
1.定义变量count统计一共用了多少次,count+=1
2.使用while true无限循环生成随机数,直到生成97就过出
3.输出count即可
"""
import random
# 定义计数器
count = 0
# 无限循环判断什么时候生成97
while True:
# 生成随机数
n = random.randint(1,100)
count +=1
if n==97:
break
print(n)
print(f"生成97这个数需要{count}次")
8.5 注意事项和细节说明
-
break语句是用在for或while循环所嵌套的代码
-
它会终结最近的外层循环,如果循环有可选的else子句,也会跳过该子句
python
# 2. 它会终结最近的外层循环,如果循环有可选的else子句,也会跳过该子句
count= 0
while True:
print("hi while")
count += 1
if count== 3:
# 这个终止外层的循环
break
while True:
print("OK while")
# 这个break只会终止最近的这个循环
break
else:
# 有break中断,不会执行
print("Hello,while")

- 如果for循环被break所终结,该循环的控制变量会保持其当前值
python
# 3. 如果for循环被break所终结,该循环的控制变量会保持其当前值
nums=[1,2,3,4,5,6]
for i in nums:
# if i > 3:
# break
print("ok")
print("i=", i)
8.6 课堂练习

python
# 1-100以内的数求和,求出当和第一次大于20的当前控制循环的变量值是多少?
"""
思路分析
1.定义变量sum累加和
2.for遍历1-100,当sum>20时,就退出for-break
3.输出当前的控制循环的变量值即可
"""
# 定义变量sum累加和
sum = 0
# 遍历1-100
for i in range(1,101):
# 累加
sum +=i
# 判断
if sum>20:
break
print(i)

python
# 2、实现登录验证,有三次机会,如果用户名为"张无忌",
# 密码"888"提示登录成功,否则提示还有几次机会,请使用for+break完成
"""
思路分析:
1.实现登录验证,有3次机会,我使用for循环3次
2.接收用户的输入(名字name+密码pwd),如果满足条件,家break
3.根据登录的情况,提示成功/还有几次登录机会
"""
count = 0
# 登录三次
for i in range(3):
count+=1
user_name = input("请输入用户名:")
num =int(input("请输入密码:"))
# 判断是否成功
if user_name =="张无忌" and num==888:
print("登录成功")
break
print(f"还有{3 - count}次")
else:
print("次数用完")
9.continue语句
9.1 基本介绍
- 说明
-
continue语句用于for或while循环所嵌套的代码中
-
continue语句用于结束本次循环,继续执行循环的下一个轮次
-
继续执行的是:该continue最近的外层循环的下一个轮次
- 基本语法

9.2 以while使用continue为例,画出流程图

9.3 快速入门

9.4 课堂练习题

10. return语句
- 基本介绍
-
return使用在函数,表示跳出所在的函数
-
在讲解函数的时候,会详细的介绍,这里我们简单的演示下


11.本章作业

python
# 某人有100,000元,每经过一次路口,需要交费,规则如下:
# 当现金>50000时,每次交5%
# 当现金<=50000时,每次交1000
# 编程计算该人可以经过多少次路口,使用while+break方式完成
"""
思路分析
1.定义变量money=100000 表示钱的数量
2.定义变量count=0用来统计经过了多少个路口
3.使用while无限循环,按照过路口付款的规则来减少money,直到不够过路口为止,break
4.最后输出count即可
"""
# 定义钱变量
money = 100000
# 定义经过多少路口
count = 0
# 使用while无限循环,按照过路口付款的规则来减少money,直到不够过路口为止,break
while True:
# 当现金>50000时,每次交5%
if money>50000:
count+=1
money-=money*0.05
# 当现金 <= 50000时, 每次交1000
elif money>=1000:
count += 1
money-=1000
else:
break
print(f"该人可以经过{count}次路口,剩余{money}元")
注意:
else可以没有,elif可以有多个
