Python五. 程序控制结构(详细解释)

1. 程序流程控制介绍

2. 顺序控制

2.1 顺序控制介绍

程序从上到下逐行执行,中间没有任何判断和跳转

2.2属性控制举例和注意事项

示意图

案例

3. 分支控制if-else

3.1 介绍

3.2 单分支

  • 基本语法

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

  • if基本语法说明
  1. 当条件表达式为True时,就会执行代码块,如果为False,就不执行

  2. Python缩进非常重要,是用于界定代码块的,相当于其他编程语言的大括号{}

if_detail.py

python 复制代码
# 1. 当条件表达式为True时,就会执行代码块,如果为False,就不执行
# 2. Python缩进非常重要,是用于界定代码块的,相当于其他编程语言的大括号{}

if 4<1 :
    print("ok1")
    print("ok2")
    
print("ok3")
# 由于缩进不同,也就是不是同一个代码块,所以if控制不到下面的ok3
  1. 最短的缩进对较长的有包含关系,缩进前后没有要求,但是每个代码应具有相同的缩进长度(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基本语法说明
  1. if、else是关键字,是规定好的

  2. 当条件表达式成立,即执行代码块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 单分支和双分支的课后练习题

  1. 对下列代码,若有输出,指出输出结果(2min),if_exercisse01.py
python 复制代码
#代码
x = 4
y=1
if x>2:
    if  y>2:
        print(x + y)
    print("韩顺平教育~")
else:
    print("x is", x)
    #结果:韩顺平教育~
  1. 编写程序,定义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!")
  1. 编写程序,定了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}")
  1. 【选作】定义两个变量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. 判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(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 基本介绍

  • 基本介绍
  1. 嵌套分支:在一个分支结构中又嵌套了另一个分支结构

  2. 里面的分支的结构称为内层分支,外面的分支结构称为小层分支

  3. 规范:不要超过3层(可读性不好)

  • 基本语法

4.2 应用案例

  1. 参加歌手比赛,如果初赛成绩大于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("你被淘汰了!")
  1. 出票系统:根据淡旺季的月份和年龄,打印票价[课后练习][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基本语法说明
  1. for、in是关键字,是规定好的

  2. <范围/序列>可以理解要处理的数据集,需要是可选代对象(比如字符串,列表等..)

  3. 循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体

  4. 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 注意事项和细节说明

  1. 循环时,依次将序列中的值取出赋给变量

  2. 如需要遍历数字序列,可以使用内置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)
  1. 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基本语法说明
  1. while是关键字,是规定好的

  2. 当判断条件为True时,就执行循环操作语句,如果为False,就退出while

  3. 循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体

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 注意事项和细节说明

  1. 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 介绍

  1. 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while均可以作为外层循环和内层循环。【建议】一般使用两层,最多不要超过3层,否则代码的可读性不好
  1. 实质上,嵌套循环就是把内层循环当成外层循环的循环体

  2. 如果外层循环m次,内层为n次,则内层循环实际上需要执行m*n次,文件【multiply_for.py】

7.2 经典的打印金字塔

  • 使用for 循环完成下面的案例

请编写一个程序,可以接收一个整数,表示层数(total_level),打印出空心金字塔。[化繁为简,先死后活]

  1. 完成思想,可以先从矩形开始打
  1. 代码实现,文件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 注意事项和细节说明

  1. break语句是用在for或while循环所嵌套的代码

  2. 它会终结最近的外层循环,如果循环有可选的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")
  1. 如果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 基本介绍

  • 说明
  1. continue语句用于for或while循环所嵌套的代码中

  2. continue语句用于结束本次循环,继续执行循环的下一个轮次

  3. 继续执行的是:该continue最近的外层循环的下一个轮次

  • 基本语法

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

9.3 快速入门

9.4 课堂练习题

10. return语句

  • 基本介绍
  1. return使用在函数,表示跳出所在的函数

  2. 在讲解函数的时候,会详细的介绍,这里我们简单的演示下

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可以有多个

相关推荐
cvcode_study2 小时前
Jupyter Notebook
python·jupyter
70asunflower2 小时前
Python `pathlib` 模块使用教程
python
rGzywSmDg2 小时前
如何在Dev-C++中配置TDM-GCC编译器
开发语言·c++·算法
淘矿人2 小时前
Claude助力后端开发
java·开发语言·人工智能·python·github·php·pygame
小短腿的代码世界2 小时前
Qt布局系统源码深度解析:QLayout如何操控你的界面——从QBoxLayout到QGridLayout的底层引擎揭秘
开发语言·数据库·qt
JAVA面经实录9172 小时前
Java集合100道面试真题(背诵完整版)
java·python·面试
浅念-2 小时前
LeetCode回溯算法从入门到精通完整解析
开发语言·数据结构·c++·算法·leetcode·dfs·深度优先遍历
踩着两条虫2 小时前
可视化设计器组件系统:从交互核心到 AI 智能代理的落地实践
开发语言·前端·人工智能·低代码·设计模式·架构
XD7429716362 小时前
科技早报晚报|2026年5月18日:Agent 原生语言、代码语义图谱与 Rust 数据层,今天更值得跟进的 3 个技术机会
开发语言·科技·rust·科技新闻·开发者工具·ai工程